diff --git a/.opencode/opencode.jsonc b/.opencode/opencode.jsonc index 2a4558e428..dd5a4c750f 100644 --- a/.opencode/opencode.jsonc +++ b/.opencode/opencode.jsonc @@ -1,6 +1,9 @@ { "$schema": "https://opencode.ai/config.json", "plugin": ["opencode-openai-codex-auth"], + // "enterprise": { + // "url": "http://localhost:3000", + // }, "provider": { "opencode": { "options": { diff --git a/bun.lock b/bun.lock index 7f28a0c61c..4a49af13a5 100644 --- a/bun.lock +++ b/bun.lock @@ -5,6 +5,7 @@ "": { "name": "opencode", "dependencies": { + "@aws-sdk/client-s3": "3.933.0", "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", }, @@ -18,6 +19,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", + "version": "1.0.90", "dependencies": { "@ibm/plex": "6.4.1", "@jsx-email/render": "1.1.1", @@ -26,9 +28,9 @@ "@opencode-ai/console-core": "workspace:*", "@opencode-ai/console-mail": "workspace:*", "@opencode-ai/console-resource": "workspace:*", - "@solidjs/meta": "^0.29.4", - "@solidjs/router": "^0.15.0", - "@solidjs/start": "^1.1.0", + "@solidjs/meta": "catalog:", + "@solidjs/router": "catalog:", + "@solidjs/start": "catalog:", "chart.js": "4.5.1", "solid-js": "catalog:", "vinxi": "^0.5.7", @@ -121,6 +123,7 @@ "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", "@opencode-ai/ui": "workspace:*", + "@opencode-ai/util": "workspace:*", "@shikijs/transformers": "3.9.2", "@solid-primitives/active-element": "2.1.3", "@solid-primitives/event-bus": "1.1.2", @@ -128,7 +131,7 @@ "@solid-primitives/scroll": "2.1.3", "@solid-primitives/storage": "4.3.3", "@solidjs/meta": "catalog:", - "@solidjs/router": "0.15.3", + "@solidjs/router": "catalog:", "@thisbeyond/solid-dnd": "0.7.5", "diff": "catalog:", "fuzzysort": "catalog:", @@ -145,7 +148,7 @@ "devDependencies": { "@tailwindcss/vite": "catalog:", "@tsconfig/bun": "1.0.9", - "@types/luxon": "3.7.1", + "@types/luxon": "catalog:", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:", @@ -154,6 +157,30 @@ "vite-plugin-solid": "catalog:", }, }, + "packages/enterprise": { + "name": "@opencode-ai/enterprise", + "version": "0.0.0", + "dependencies": { + "@opencode-ai/ui": "workspace:*", + "@opencode-ai/util": "workspace:*", + "@solidjs/meta": "catalog:", + "@solidjs/router": "catalog:", + "@solidjs/start": "catalog:", + "hono": "catalog:", + "hono-openapi": "catalog:", + "luxon": "catalog:", + "solid-js": "catalog:", + "vinxi": "^0.5.7", + "zod": "catalog:", + }, + "devDependencies": { + "@tailwindcss/vite": "catalog:", + "@types/luxon": "catalog:", + "@typescript/native-preview": "catalog:", + "tailwindcss": "catalog:", + "typescript": "catalog:", + }, + }, "packages/function": { "name": "@opencode-ai/function", "version": "1.0.90", @@ -191,6 +218,7 @@ "@opencode-ai/plugin": "workspace:*", "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "0.1.47", "@opentui/solid": "0.1.47", "@parcel/watcher": "2.5.1", @@ -206,7 +234,7 @@ "fuzzysort": "3.1.0", "gray-matter": "4.0.3", "hono": "catalog:", - "hono-openapi": "1.1.1", + "hono-openapi": "catalog:", "ignore": "7.0.5", "jsonc-parser": "3.3.1", "minimatch": "10.0.3", @@ -299,6 +327,7 @@ "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", + "@opencode-ai/util": "workspace:*", "@pierre/precision-diffs": "catalog:", "@shikijs/transformers": "3.9.2", "@solidjs/meta": "catalog:", @@ -320,6 +349,7 @@ "tailwindcss": "catalog:", "typescript": "catalog:", "vite": "catalog:", + "vite-plugin-icons-spritesheet": "3.0.1", "vite-plugin-solid": "catalog:", }, }, @@ -343,7 +373,7 @@ "@astrojs/starlight": "0.34.3", "@fontsource/ibm-plex-mono": "5.2.5", "@shikijs/transformers": "3.4.2", - "@types/luxon": "3.6.2", + "@types/luxon": "catalog:", "ai": "catalog:", "astro": "5.7.13", "diff": "catalog:", @@ -381,28 +411,32 @@ "@hono/zod-validator": "0.4.2", "@kobalte/core": "0.13.11", "@openauthjs/openauth": "0.0.0-20250322224806", - "@pierre/precision-diffs": "0.4.4", + "@pierre/precision-diffs": "0.5.4", "@solidjs/meta": "0.29.4", + "@solidjs/router": "0.15.4", + "@solidjs/start": "1.2.0", "@tailwindcss/vite": "4.1.11", "@tsconfig/bun": "1.0.9", "@tsconfig/node22": "22.0.2", "@types/bun": "1.3.3", + "@types/luxon": "3.7.1", "@types/node": "22.13.9", "@typescript/native-preview": "7.0.0-dev.20251014.1", "ai": "5.0.97", "diff": "8.0.2", "fuzzysort": "3.1.0", "hono": "4.7.10", + "hono-openapi": "1.1.1", "luxon": "3.6.1", "remeda": "2.26.0", - "solid-js": "1.9.9", + "solid-js": "1.9.10", "solid-list": "0.3.0", "tailwindcss": "4.1.11", "typescript": "5.8.2", "ulid": "3.0.1", "virtua": "0.42.3", "vite": "7.1.4", - "vite-plugin-solid": "2.11.8", + "vite-plugin-solid": "2.11.10", "zod": "4.1.8", }, "packages": { @@ -452,7 +486,7 @@ "@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.1", "", { "dependencies": { "@astrojs/internal-helpers": "0.6.1", "@astrojs/prism": "3.2.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.1.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "remark-smartypants": "^3.0.2", "shiki": "^3.0.0", "smol-toml": "^1.3.1", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-c5F5gGrkczUaTVgmMW9g1YMJGzOtRvjjhw6IfGuxarM6ct09MpwysP10US729dy07gg8y+ofVifezvP3BNsWZg=="], - "@astrojs/mdx": ["@astrojs/mdx@4.3.10", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.8", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.15.0", "es-module-lexer": "^1.7.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "picocolors": "^1.1.1", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-2T5+XIr7PMqMeXhRofXY5NlY4lA0Km+wkfsqmr9lq5KXUHpGlKPQ9dlDZJP9E/CtljJyEBNS17zq66LrIJ1tiQ=="], + "@astrojs/mdx": ["@astrojs/mdx@4.3.12", "", { "dependencies": { "@astrojs/markdown-remark": "6.3.9", "@mdx-js/mdx": "^3.1.1", "acorn": "^8.15.0", "es-module-lexer": "^1.7.0", "estree-util-visit": "^2.0.0", "hast-util-to-html": "^9.0.5", "piccolore": "^0.1.3", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.1", "remark-smartypants": "^3.0.2", "source-map": "^0.7.6", "unist-util-visit": "^5.0.0", "vfile": "^6.0.3" }, "peerDependencies": { "astro": "^5.0.0" } }, "sha512-pL3CVPtuQrPnDhWjy7zqbOibNyPaxP4VpQS8T8spwKqKzauJ4yoKyNkVTD8jrP7EAJHmBhZ7PTmUGZqOpKKp8g=="], "@astrojs/prism": ["@astrojs/prism@3.2.0", "", { "dependencies": { "prismjs": "^1.29.0" } }, "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw=="], @@ -468,6 +502,10 @@ "@aws-crypto/crc32": ["@aws-crypto/crc32@5.2.0", "", { "dependencies": { "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", "tslib": "^2.6.2" } }, "sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg=="], + "@aws-crypto/crc32c": ["@aws-crypto/crc32c@5.2.0", "", { "dependencies": { "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", "tslib": "^2.6.2" } }, "sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag=="], + + "@aws-crypto/sha1-browser": ["@aws-crypto/sha1-browser@5.2.0", "", { "dependencies": { "@aws-crypto/supports-web-crypto": "^5.2.0", "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-locate-window": "^3.0.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.6.2" } }, "sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg=="], + "@aws-crypto/sha256-browser": ["@aws-crypto/sha256-browser@5.2.0", "", { "dependencies": { "@aws-crypto/sha256-js": "^5.2.0", "@aws-crypto/supports-web-crypto": "^5.2.0", "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", "@aws-sdk/util-locate-window": "^3.0.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.6.2" } }, "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw=="], "@aws-crypto/sha256-js": ["@aws-crypto/sha256-js@5.2.0", "", { "dependencies": { "@aws-crypto/util": "^5.2.0", "@aws-sdk/types": "^3.222.0", "tslib": "^2.6.2" } }, "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA=="], @@ -476,49 +514,71 @@ "@aws-crypto/util": ["@aws-crypto/util@5.2.0", "", { "dependencies": { "@aws-sdk/types": "^3.222.0", "@smithy/util-utf8": "^2.0.0", "tslib": "^2.6.2" } }, "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ=="], - "@aws-sdk/client-sso": ["@aws-sdk/client-sso@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-5GlJBejo8wqMpSSEKb45WE82YxI2k73YuebjLH/eWDNQeE6VI5Bh9lA1YQ7xNkLLH8hIsb0pSfKVuwh0VEzVrg=="], + "@aws-sdk/client-s3": ["@aws-sdk/client-s3@3.933.0", "", { "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-node": "3.933.0", "@aws-sdk/middleware-bucket-endpoint": "3.930.0", "@aws-sdk/middleware-expect-continue": "3.930.0", "@aws-sdk/middleware-flexible-checksums": "3.932.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-location-constraint": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-sdk-s3": "3.932.0", "@aws-sdk/middleware-ssec": "3.930.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/signature-v4-multi-region": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/eventstream-serde-browser": "^4.2.5", "@smithy/eventstream-serde-config-resolver": "^4.3.5", "@smithy/eventstream-serde-node": "^4.2.5", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-blob-browser": "^4.2.6", "@smithy/hash-node": "^4.2.5", "@smithy/hash-stream-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/md5-js": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/util-waiter": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-KxwZvdxdCeWK6o8mpnb+kk7Kgb8V+8AjTwSXUWH1UAD85B0tjdo1cSfE5zoR5fWGol4Ml5RLez12a6LPhsoTqA=="], + + "@aws-sdk/client-sso": ["@aws-sdk/client-sso@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-zwGLSiK48z3PzKpQiDMKP85+fpIrPMF1qQOQW9OW7BGj5AuBZIisT2O4VzIgYJeh+t47MLU7VgBQL7muc+MJDg=="], "@aws-sdk/client-sts": ["@aws-sdk/client-sts@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/credential-provider-node": "3.782.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-Q1QLY3xE2z1trgriusP/6w40mI/yJjM524bN4gs+g6YX4sZGufpa7+Dj+JjL4fz8f9BCJ3ZlI+p4WxFxH7qvdQ=="], - "@aws-sdk/core": ["@aws-sdk/core@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/core": "^3.2.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", "@smithy/signature-v4": "^5.0.2", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/util-middleware": "^4.0.2", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" } }, "sha512-8vpW4WihVfz0DX+7WnnLGm3GuQER++b0IwQG35JlQMlgqnc44M//KbJPsIHA0aJUJVwJAEShgfr5dUbY8WUzaA=="], + "@aws-sdk/core": ["@aws-sdk/core@3.932.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws-sdk/xml-builder": "3.930.0", "@smithy/core": "^3.18.2", "@smithy/node-config-provider": "^4.3.5", "@smithy/property-provider": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-AS8gypYQCbNojwgjvZGkJocC2CoEICDx9ZJ15ILsv+MlcCVLtUJSRSx3VzJOUY2EEIaGLRrPNlIqyn/9/fySvA=="], - "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.775.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-6ESVxwCbGm7WZ17kY1fjmxQud43vzJFoLd4bmlR+idQSWdqlzGDYdcfzpjDKTcivdtNrVYmFvcH1JBUwCRAZhw=="], + "@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-ozge/c7NdHUDyHqro6+P5oHt8wfKSUBN+olttiVfBe9Mw3wBMpPa3gQ0pZnG+gwBkKskBuip2bMR16tqYvUSEA=="], - "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.775.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/util-stream": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-PjDQeDH/J1S0yWV32wCj2k5liRo0ssXMseCBEkCsD3SqsU8o5cU82b0hMX4sAib/RkglCSZqGO0xMiN0/7ndww=="], + "@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/node-http-handler": "^4.4.5", "@smithy/property-provider": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-stream": "^4.5.6", "tslib": "^2.6.2" } }, "sha512-b6N9Nnlg8JInQwzBkUq5spNaXssM3h3zLxGzpPrnw0nHSIWPJPTbZzA5Ca285fcDUFuKP+qf3qkuqlAjGOdWhg=="], - "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.782.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/credential-provider-env": "3.775.0", "@aws-sdk/credential-provider-http": "3.775.0", "@aws-sdk/credential-provider-process": "3.775.0", "@aws-sdk/credential-provider-sso": "3.782.0", "@aws-sdk/credential-provider-web-identity": "3.782.0", "@aws-sdk/nested-clients": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-wd4KdRy2YjLsE4Y7pz00470Iip06GlRHkG4dyLW7/hFMzEO2o7ixswCWp6J2VGZVAX64acknlv2Q0z02ebjmhw=="], + "@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.933.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/credential-provider-env": "3.932.0", "@aws-sdk/credential-provider-http": "3.932.0", "@aws-sdk/credential-provider-process": "3.932.0", "@aws-sdk/credential-provider-sso": "3.933.0", "@aws-sdk/credential-provider-web-identity": "3.933.0", "@aws-sdk/nested-clients": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-HygGyKuMG5AaGXsmM0d81miWDon55xwalRHB3UmDg3QBhtunbNIoIaWUbNTKuBZXcIN6emeeEZw/YgSMqLc0YA=="], - "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.782.0", "", { "dependencies": { "@aws-sdk/credential-provider-env": "3.775.0", "@aws-sdk/credential-provider-http": "3.775.0", "@aws-sdk/credential-provider-ini": "3.782.0", "@aws-sdk/credential-provider-process": "3.775.0", "@aws-sdk/credential-provider-sso": "3.782.0", "@aws-sdk/credential-provider-web-identity": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-HZiAF+TCEyKjju9dgysjiPIWgt/+VerGaeEp18mvKLNfgKz1d+/82A2USEpNKTze7v3cMFASx3CvL8yYyF7mJw=="], + "@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.933.0", "", { "dependencies": { "@aws-sdk/credential-provider-env": "3.932.0", "@aws-sdk/credential-provider-http": "3.932.0", "@aws-sdk/credential-provider-ini": "3.933.0", "@aws-sdk/credential-provider-process": "3.932.0", "@aws-sdk/credential-provider-sso": "3.933.0", "@aws-sdk/credential-provider-web-identity": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-L2dE0Y7iMLammQewPKNeEh1z/fdJyYEU+/QsLBD9VEh+SXcN/FIyTi21Isw8wPZN6lMB9PDVtISzBnF8HuSFrw=="], - "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.775.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-A6k68H9rQp+2+7P7SGO90Csw6nrUEm0Qfjpn9Etc4EboZhhCLs9b66umUsTsSBHus4FDIe5JQxfCUyt1wgNogg=="], + "@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-BodZYKvT4p/Dkm28Ql/FhDdS1+p51bcZeMMu2TRtU8PoMDHnVDhHz27zASEKSZwmhvquxHrZHB0IGuVqjZUtSQ=="], - "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.782.0", "", { "dependencies": { "@aws-sdk/client-sso": "3.782.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/token-providers": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-1y1ucxTtTIGDSNSNxriQY8msinilhe9gGvQpUDYW9gboyC7WQJPDw66imy258V6osdtdi+xoHzVCbCz3WhosMQ=="], + "@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.933.0", "", { "dependencies": { "@aws-sdk/client-sso": "3.933.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/token-providers": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-/R1DBR7xNcuZIhS2RirU+P2o8E8/fOk+iLAhbqeSTq+g09fP/F6W7ouFpS5eVE2NIfWG7YBFoVddOhvuqpn51g=="], - "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.782.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/nested-clients": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-xCna0opVPaueEbJoclj5C6OpDNi0Gynj+4d7tnuXGgQhTHPyAz8ZyClkVqpi5qvHTgxROdUEDxWqEO5jqRHZHQ=="], + "@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.933.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/nested-clients": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-c7Eccw2lhFx2/+qJn3g+uIDWRuWi2A6Sz3PVvckFUEzPsP0dPUo19hlvtarwP5GzrsXn0yEPRVhpewsIaSCGaQ=="], - "@aws-sdk/middleware-host-header": ["@aws-sdk/middleware-host-header@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-tkSegM0Z6WMXpLB8oPys/d+umYIocvO298mGvcMCncpRl77L9XkvSLJIFzaHes+o7djAgIduYw8wKIMStFss2w=="], + "@aws-sdk/middleware-bucket-endpoint": ["@aws-sdk/middleware-bucket-endpoint@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-config-provider": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-cnCLWeKPYgvV4yRYPFH6pWMdUByvu2cy2BAlfsPpvnm4RaVioztyvxmQj5PmVN5fvWs5w/2d6U7le8X9iye2sA=="], - "@aws-sdk/middleware-logger": ["@aws-sdk/middleware-logger@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-FaxO1xom4MAoUJsldmR92nT1G6uZxTdNYOFYtdHfd6N2wcNaTuxgjIvqzg5y7QIH9kn58XX/dzf1iTjgqUStZw=="], + "@aws-sdk/middleware-expect-continue": ["@aws-sdk/middleware-expect-continue@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-5HEQ+JU4DrLNWeY27wKg/jeVa8Suy62ivJHOSUf6e6hZdVIMx0h/kXS1fHEQNNiLu2IzSEP/bFXsKBaW7x7s0g=="], - "@aws-sdk/middleware-recursion-detection": ["@aws-sdk/middleware-recursion-detection@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-GLCzC8D0A0YDG5u3F5U03Vb9j5tcOEFhr8oc6PDk0k0vm5VwtZOE6LvK7hcCSoAB4HXyOUM0sQuXrbaAh9OwXA=="], + "@aws-sdk/middleware-flexible-checksums": ["@aws-sdk/middleware-flexible-checksums@3.932.0", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/is-array-buffer": "^4.2.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-hyvRz/XS/0HTHp9/Ld1mKwpOi7bZu5olI42+T112rkCTbt1bewkygzEl4oflY4H7cKMamQusYoL0yBUD/QSEvA=="], - "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.782.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@smithy/core": "^3.2.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-i32H2R6IItX+bQ2p4+v2gGO2jA80jQoJO2m1xjU9rYWQW3+ErWy4I5YIuQHTBfb6hSdAHbaRfqPDgbv9J2rjEg=="], + "@aws-sdk/middleware-host-header": ["@aws-sdk/middleware-host-header@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-x30jmm3TLu7b/b+67nMyoV0NlbnCVT5DI57yDrhXAPCtdgM1KtdLWt45UcHpKOm1JsaIkmYRh2WYu7Anx4MG0g=="], - "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-QOYC8q7luzHFXrP0xYAqBctoPkynjfV0r9dqntFu4/IWMTyC1vlo1UTxFAjIPyclYw92XJyEkVCVg9v/nQnsUA=="], + "@aws-sdk/middleware-location-constraint": ["@aws-sdk/middleware-location-constraint@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-QIGNsNUdRICog+LYqmtJ03PLze6h2KCORXUs5td/hAEjVP5DMmubhtrGg1KhWyctACluUH/E/yrD14p4pRXxwA=="], - "@aws-sdk/region-config-resolver": ["@aws-sdk/region-config-resolver@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", "@smithy/util-middleware": "^4.0.2", "tslib": "^2.6.2" } }, "sha512-40iH3LJjrQS3LKUJAl7Wj0bln7RFPEvUYKFxtP8a+oKFDO0F65F52xZxIJbPn6sHkxWDAnZlGgdjZXM3p2g5wQ=="], + "@aws-sdk/middleware-logger": ["@aws-sdk/middleware-logger@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-vh4JBWzMCBW8wREvAwoSqB2geKsZwSHTa0nSt0OMOLp2PdTYIZDi0ZiVMmpfnjcx9XbS6aSluLv9sKx4RrG46A=="], - "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.782.0", "", { "dependencies": { "@aws-sdk/nested-clients": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-4tPuk/3+THPrzKaXW4jE2R67UyGwHLFizZ47pcjJWbhb78IIJAy94vbeqEQ+veS84KF5TXcU7g5jGTXC0D70Wg=="], + "@aws-sdk/middleware-recursion-detection": ["@aws-sdk/middleware-recursion-detection@3.933.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@aws/lambda-invoke-store": "^0.2.0", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-qgrMlkVKzTCAdNw2A05DC2sPBo0KRQ7wk+lbYSRJnWVzcrceJhnmhoZVV5PFv7JtchK7sHVcfm9lcpiyd+XaCA=="], - "@aws-sdk/types": ["@aws-sdk/types@3.775.0", "", { "dependencies": { "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-ZoGKwa4C9fC9Av6bdfqcW6Ix5ot05F/S4VxWR2nHuMv7hzfmAjTOcUiWT7UR4hM/U0whf84VhDtXN/DWAk52KA=="], + "@aws-sdk/middleware-sdk-s3": ["@aws-sdk/middleware-sdk-s3@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/core": "^3.18.2", "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-bYMHxqQzseaAP9Z5qLI918z5AtbAnZRRtFi3POb4FLZyreBMgCgBNaPkIhdgywnkqaydTWvbMBX4s9f4gUwlTw=="], - "@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.782.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/types": "^4.2.0", "@smithy/util-endpoints": "^3.0.2", "tslib": "^2.6.2" } }, "sha512-/RJOAO7o7HI6lEa4ASbFFLHGU9iPK876BhsVfnl54MvApPVYWQ9sHO0anOUim2S5lQTwd/6ghuH3rFYSq/+rdw=="], + "@aws-sdk/middleware-ssec": ["@aws-sdk/middleware-ssec@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-N2/SvodmaDS6h7CWfuapt3oJyn1T2CBz0CsDIiTDv9cSagXAVFjPdm2g4PFJqrNBeqdDIoYBnnta336HmamWHg=="], + + "@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.932.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@smithy/core": "^3.18.2", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-9BGTbJyA/4PTdwQWE9hAFIJGpsYkyEW20WON3i15aDqo5oRZwZmqaVageOD57YYqG8JDJjvcwKyDdR4cc38dvg=="], + + "@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.933.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.932.0", "@aws-sdk/middleware-host-header": "3.930.0", "@aws-sdk/middleware-logger": "3.930.0", "@aws-sdk/middleware-recursion-detection": "3.933.0", "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/region-config-resolver": "3.930.0", "@aws-sdk/types": "3.930.0", "@aws-sdk/util-endpoints": "3.930.0", "@aws-sdk/util-user-agent-browser": "3.930.0", "@aws-sdk/util-user-agent-node": "3.932.0", "@smithy/config-resolver": "^4.4.3", "@smithy/core": "^3.18.2", "@smithy/fetch-http-handler": "^5.3.6", "@smithy/hash-node": "^4.2.5", "@smithy/invalid-dependency": "^4.2.5", "@smithy/middleware-content-length": "^4.2.5", "@smithy/middleware-endpoint": "^4.3.9", "@smithy/middleware-retry": "^4.4.9", "@smithy/middleware-serde": "^4.2.5", "@smithy/middleware-stack": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/node-http-handler": "^4.4.5", "@smithy/protocol-http": "^5.3.5", "@smithy/smithy-client": "^4.9.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.8", "@smithy/util-defaults-mode-node": "^4.2.11", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-o1GX0+IPlFi/D8ei9y/jj3yucJWNfPnbB5appVBWevAyUdZA5KzQ2nK/hDxiu9olTZlFEFpf1m1Rn3FaGxHqsw=="], + + "@aws-sdk/region-config-resolver": ["@aws-sdk/region-config-resolver@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/config-resolver": "^4.4.3", "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-KL2JZqH6aYeQssu1g1KuWsReupdfOoxD6f1as2VC+rdwYFUu4LfzMsFfXnBvvQWWqQ7rZHWOw1T+o5gJmg7Dzw=="], + + "@aws-sdk/signature-v4-multi-region": ["@aws-sdk/signature-v4-multi-region@3.932.0", "", { "dependencies": { "@aws-sdk/middleware-sdk-s3": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/protocol-http": "^5.3.5", "@smithy/signature-v4": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-NCIRJvoRc9246RZHIusY1+n/neeG2yGhBGdKhghmrNdM+mLLN6Ii7CKFZjx3DhxtpHMpl1HWLTMhdVrGwP2upw=="], + + "@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.933.0", "", { "dependencies": { "@aws-sdk/core": "3.932.0", "@aws-sdk/nested-clients": "3.933.0", "@aws-sdk/types": "3.930.0", "@smithy/property-provider": "^4.2.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-Qzq7zj9yXUgAAJEbbmqRhm0jmUndl8nHG0AbxFEfCfQRVZWL96Qzx0mf8lYwT9hIMrXncLwy31HOthmbXwFRwQ=="], + + "@aws-sdk/types": ["@aws-sdk/types@3.930.0", "", { "dependencies": { "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-we/vaAgwlEFW7IeftmCLlLMw+6hFs3DzZPJw7lVHbj/5HJ0bz9gndxEsS2lQoeJ1zhiiLqAqvXxmM43s0MBg0A=="], + + "@aws-sdk/util-arn-parser": ["@aws-sdk/util-arn-parser@3.893.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA=="], + + "@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-endpoints": "^3.2.5", "tslib": "^2.6.2" } }, "sha512-M2oEKBzzNAYr136RRc6uqw3aWlwCxqTP1Lawps9E1d2abRPvl1p1ztQmmXp1Ak4rv8eByIZ+yQyKQ3zPdRG5dw=="], "@aws-sdk/util-locate-window": ["@aws-sdk/util-locate-window@3.893.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg=="], - "@aws-sdk/util-user-agent-browser": ["@aws-sdk/util-user-agent-browser@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/types": "^4.2.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "sha512-txw2wkiJmZKVdDbscK7VBK+u+TJnRtlUjRTLei+elZg2ADhpQxfVAQl436FUeIv6AhB/oRHW6/K/EAGXUSWi0A=="], + "@aws-sdk/util-user-agent-browser": ["@aws-sdk/util-user-agent-browser@3.930.0", "", { "dependencies": { "@aws-sdk/types": "3.930.0", "@smithy/types": "^4.9.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "sha512-q6lCRm6UAe+e1LguM5E4EqM9brQlDem4XDcQ87NzEvlTW6GzmNCO0w1jS0XgCFXQHjDxjdlNFX+5sRbHijwklg=="], - "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.782.0", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-dMFkUBgh2Bxuw8fYZQoH/u3H4afQ12VSkzEi//qFiDTwbKYq+u+RYjc8GLDM6JSK1BShMu5AVR7HD4ap1TYUnA=="], + "@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.932.0", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "3.932.0", "@aws-sdk/types": "3.930.0", "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-/kC6cscHrZL74TrZtgiIL5jJNbVsw9duGGPurmaVgoCbP7NnxyaSWEurbNV3VPNPhNE3bV3g4Ci+odq+AlsYQg=="], + + "@aws-sdk/xml-builder": ["@aws-sdk/xml-builder@3.930.0", "", { "dependencies": { "@smithy/types": "^4.9.0", "fast-xml-parser": "5.2.5", "tslib": "^2.6.2" } }, "sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA=="], + + "@aws/lambda-invoke-store": ["@aws/lambda-invoke-store@0.2.1", "", {}, "sha512-sIyFcoPZkTtNu9xFeEoynMef3bPJIAbOfUh+ueYcfhVl6xm2VRtMcMclSxmZCMnHHd4hlYKJeq/aggmBEWynww=="], "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], @@ -590,17 +650,17 @@ "@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.4.0", "", { "dependencies": { "mime": "^3.0.0" } }, "sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA=="], - "@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.7.9", "", { "peerDependencies": { "unenv": "2.0.0-rc.24", "workerd": "^1.20250927.0" }, "optionalPeers": ["workerd"] }, "sha512-Drm7qlTKnvncEv+DANiQNEonq0H0LyIsoFZYJ6tJ8OhAoy5udIE8yp6BsVDYcIjcYLIybp4M7c/P7ly/56SoHg=="], + "@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.7.11", "", { "peerDependencies": { "unenv": "2.0.0-rc.24", "workerd": "^1.20251106.1" }, "optionalPeers": ["workerd"] }, "sha512-se23f1D4PxKrMKOq+Stz+Yn7AJ9ITHcEecXo2Yjb+UgbUDCEBch1FXQC6hx6uT5fNA3kmX3mfzeZiUmpK1W9IQ=="], - "@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20251105.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-nztUP35wTtUKM+681dBWtUNSySNWELTV+LY43oWy7ZhK19/iBJPQoFY7xpvF7zy4qOOShtise259B65DS4/71Q=="], + "@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20251118.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-UmWmYEYS/LkK/4HFKN6xf3Hk8cw70PviR+ftr3hUvs9HYZS92IseZEp16pkL6ZBETrPRpZC7OrzoYF7ky6kHsg=="], - "@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20251105.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-WS/dvPYTW/+gs8s0UvDqDY7wcuIAg/hUpjrMNGepr+Mo38vMU39FYhJQOly99oJCXxMluQqAnRKg09b/9Gr+Rg=="], + "@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20251118.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RockU7Qzf4rxNfY1lx3j4rvwutNLjTIX7rr2hogbQ4mzLo8Ea40/oZTzXVxl+on75joLBrt0YpenGW8o/r44QA=="], - "@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20251105.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RdHRHo/hpjR6sNw529FkmslVSz/K3Pb1+i3fIoqUrHCrZOUYzFyz3nLeZh4EYaAhcztLWiSTwBv54bcl4sG3wA=="], + "@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20251118.0", "", { "os": "linux", "cpu": "x64" }, "sha512-aT97GnOAbJDuuOG0zPVhgRk0xFtB1dzBMrxMZ09eubDLoU4djH4BuORaqvxNRMmHgKfa4T6drthckT0NjUvBdw=="], - "@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20251105.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-5zkxQCqLjwrqZVVJh92J2Drv6xifkP8kN2ltjHdwZQlVzfDW48d7tAtCm1ZooUv204ixvZFarusCfL+IRjExZg=="], + "@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20251118.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-bXZPJcwlq00MPOXqP7DMWjr+goYj0+Fqyw6zgEC2M3FR1+SWla4yjghnZ4IdpN+H1t7VbUrsi5np2LzMUFs0NA=="], - "@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20251105.0", "", { "os": "win32", "cpu": "x64" }, "sha512-6BpkfjBIbGR+4FBOcZGcWDLM0XQuoI6R9Dublj/BKf4pv0/xJ4zHdnaYUb5NIlC75L55Ouqw0CEJasoKlMjgnw=="], + "@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20251118.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2LV99AHSlpr8WcCb/BYbU2QsYkXLUL1izN6YKWkN9Eibv80JKX0RtgmD3dfmajE5sNvClavxZejgzVvHD9N9Ag=="], "@cloudflare/workers-types": ["@cloudflare/workers-types@4.20251008.0", "", {}, "sha512-dZLkO4PbCL0qcCSKzuW7KE4GYe49lI12LCfQ5y9XeSwgYBoAUbwH4gmJ6A0qUIURiTJTkGkRkhVPqpq2XNgYRA=="], @@ -620,7 +680,7 @@ "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], - "@emnapi/runtime": ["@emnapi/runtime@1.7.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q=="], + "@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], "@emotion/is-prop-valid": ["@emotion/is-prop-valid@0.8.8", "", { "dependencies": { "@emotion/memoize": "0.7.4" } }, "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA=="], @@ -940,9 +1000,9 @@ "@octokit/plugin-rest-endpoint-methods": ["@octokit/plugin-rest-endpoint-methods@16.1.1", "", { "dependencies": { "@octokit/types": "^15.0.1" }, "peerDependencies": { "@octokit/core": ">=6" } }, "sha512-VztDkhM0ketQYSh5Im3IcKWFZl7VIrrsCaHbDINkdYeiiAsJzjhS2xRFCSJgfN6VOcsoW4laMtsmf3HcNqIimg=="], - "@octokit/request": ["@octokit/request@10.0.6", "", { "dependencies": { "@octokit/endpoint": "^11.0.2", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "fast-content-type-parse": "^3.0.0", "universal-user-agent": "^7.0.2" } }, "sha512-FO+UgZCUu+pPnZAR+iKdUt64kPE7QW7ciqpldaMXaNzixz5Jld8dJ31LAUewk0cfSRkNSRKyqG438ba9c/qDlQ=="], + "@octokit/request": ["@octokit/request@10.0.7", "", { "dependencies": { "@octokit/endpoint": "^11.0.2", "@octokit/request-error": "^7.0.2", "@octokit/types": "^16.0.0", "fast-content-type-parse": "^3.0.0", "universal-user-agent": "^7.0.2" } }, "sha512-v93h0i1yu4idj8qFPZwjehoJx4j3Ntn+JhXsdJrG9pYaX6j/XRz2RmasMUHtNgQD39nrv/VwTWSqK0RNXR8upA=="], - "@octokit/request-error": ["@octokit/request-error@7.0.2", "", { "dependencies": { "@octokit/types": "^16.0.0" } }, "sha512-U8piOROoQQUyExw5c6dTkU3GKxts5/ERRThIauNL7yaRoeXW0q/5bgHWT7JfWBw1UyrbK8ERId2wVkcB32n0uQ=="], + "@octokit/request-error": ["@octokit/request-error@7.1.0", "", { "dependencies": { "@octokit/types": "^16.0.0" } }, "sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw=="], "@octokit/rest": ["@octokit/rest@22.0.0", "", { "dependencies": { "@octokit/core": "^7.0.2", "@octokit/plugin-paginate-rest": "^13.0.1", "@octokit/plugin-request-log": "^6.0.0", "@octokit/plugin-rest-endpoint-methods": "^16.0.0" } }, "sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA=="], @@ -966,6 +1026,8 @@ "@opencode-ai/desktop": ["@opencode-ai/desktop@workspace:packages/desktop"], + "@opencode-ai/enterprise": ["@opencode-ai/enterprise@workspace:packages/enterprise"], + "@opencode-ai/function": ["@opencode-ai/function@workspace:packages/function"], "@opencode-ai/plugin": ["@opencode-ai/plugin@workspace:packages/plugin"], @@ -1056,7 +1118,7 @@ "@petamoriken/float16": ["@petamoriken/float16@3.9.3", "", {}, "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g=="], - "@pierre/precision-diffs": ["@pierre/precision-diffs@0.4.4", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/transformers": "3.14.0", "diff": "8.0.2", "fast-deep-equal": "3.1.3", "hast-util-to-html": "9.0.5", "shiki": "3.14.0" }, "peerDependencies": { "react": "^18.3.1 || ^19.0.0", "react-dom": "^18.3.1 || ^19.0.0" } }, "sha512-9bhWs+hsz1i0/SMIrzce+fFrSec8aLIFrJYTGHATlynmQovngIWz1Gc+XwGigvY4+zSMksrGPzO5HiaNlvRqtQ=="], + "@pierre/precision-diffs": ["@pierre/precision-diffs@0.5.4", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/transformers": "3.15.0", "diff": "8.0.2", "fast-deep-equal": "3.1.3", "hast-util-to-html": "9.0.5", "shiki": "3.15.0" }, "peerDependencies": { "react": "^18.3.1 || ^19.0.0", "react-dom": "^18.3.1 || ^19.0.0" } }, "sha512-sfKCxApl+FcqvlZ4EenZtPfmCMi0w8VZBpRsCtSpgpCczmp7YI2sS/sxWokT/ieCJjyFiynb5rHcnAB7GZbXMQ=="], "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], @@ -1148,49 +1210,49 @@ "@rollup/pluginutils": ["@rollup/pluginutils@5.3.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", "picomatch": "^4.0.2" }, "peerDependencies": { "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "optionalPeers": ["rollup"] }, "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.2", "", { "os": "android", "cpu": "arm" }, "sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.3", "", { "os": "android", "cpu": "arm" }, "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.2", "", { "os": "android", "cpu": "arm64" }, "sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.3", "", { "os": "android", "cpu": "arm64" }, "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.2", "", { "os": "linux", "cpu": "arm" }, "sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.2", "", { "os": "linux", "cpu": "none" }, "sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.2", "", { "os": "linux", "cpu": "x64" }, "sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.2", "", { "os": "none", "cpu": "arm64" }, "sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.2", "", { "os": "win32", "cpu": "x64" }, "sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ=="], "@selderee/plugin-htmlparser2": ["@selderee/plugin-htmlparser2@0.11.0", "", { "dependencies": { "domhandler": "^5.0.3", "selderee": "^0.11.0" } }, "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ=="], @@ -1222,35 +1284,53 @@ "@slack/socket-mode": ["@slack/socket-mode@1.3.6", "", { "dependencies": { "@slack/logger": "^3.0.0", "@slack/web-api": "^6.12.1", "@types/node": ">=12.0.0", "@types/ws": "^7.4.7", "eventemitter3": "^5", "finity": "^0.5.4", "ws": "^7.5.3" } }, "sha512-G+im7OP7jVqHhiNSdHgv2VVrnN5U7KY845/5EZimZkrD4ZmtV0P3BiWkgeJhPtdLuM7C7i6+M6h6Bh+S4OOalA=="], - "@slack/types": ["@slack/types@2.18.0", "", {}, "sha512-ZKrdeoppbM+3l2KKOi4/3oFYKCEwiW3dQfdHZDcecJ9rAmEqWPnARYmac9taZNitb0xnSgu6GOpHgwaKI8se2g=="], + "@slack/types": ["@slack/types@2.19.0", "", {}, "sha512-7+QZ38HGcNh/b/7MpvPG6jnw7mliV6UmrquJLqgdxkzJgQEYUcEztvFWRU49z0x4vthF0ixL5lTK601AXrS8IA=="], "@slack/web-api": ["@slack/web-api@6.13.0", "", { "dependencies": { "@slack/logger": "^3.0.0", "@slack/types": "^2.11.0", "@types/is-stream": "^1.1.0", "@types/node": ">=12.0.0", "axios": "^1.7.4", "eventemitter3": "^3.1.0", "form-data": "^2.5.0", "is-electron": "2.2.2", "is-stream": "^1.1.0", "p-queue": "^6.6.1", "p-retry": "^4.0.0" } }, "sha512-dv65crIgdh9ZYHrevLU6XFHTQwTyDmNqEqzuIrV+Vqe/vgiG6w37oex5ePDU1RGm2IJ90H8iOvHFvzdEO/vB+g=="], "@smithy/abort-controller": ["@smithy/abort-controller@4.2.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-j7HwVkBw68YW8UmFRcjZOmssE77Rvk0GWAIN1oFBhsaovQmZWYCIcGa9/pwRB0ExI8Sk9MWNALTjftjHZea7VA=="], + "@smithy/chunked-blob-reader": ["@smithy/chunked-blob-reader@5.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA=="], + + "@smithy/chunked-blob-reader-native": ["@smithy/chunked-blob-reader-native@4.2.1", "", { "dependencies": { "@smithy/util-base64": "^4.3.0", "tslib": "^2.6.2" } }, "sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ=="], + "@smithy/config-resolver": ["@smithy/config-resolver@4.4.3", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-endpoints": "^3.2.5", "@smithy/util-middleware": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-ezHLe1tKLUxDJo2LHtDuEDyWXolw8WGOR92qb4bQdWq/zKenO5BvctZGrVJBK08zjezSk7bmbKFOXIVyChvDLw=="], - "@smithy/core": ["@smithy/core@3.18.0", "", { "dependencies": { "@smithy/middleware-serde": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/uuid": "^1.1.0", "tslib": "^2.6.2" } }, "sha512-vGSDXOJFZgOPTatSI1ly7Gwyy/d/R9zh2TO3y0JZ0uut5qQ88p9IaWaZYIWSSqtdekNM4CGok/JppxbAff4KcQ=="], + "@smithy/core": ["@smithy/core@3.18.5", "", { "dependencies": { "@smithy/middleware-serde": "^4.2.6", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-stream": "^4.5.6", "@smithy/util-utf8": "^4.2.0", "@smithy/uuid": "^1.1.0", "tslib": "^2.6.2" } }, "sha512-6gnIz3h+PEPQGDj8MnRSjDvKBah042jEoPgjFGJ4iJLBE78L4lY/n98x14XyPF4u3lN179Ub/ZKFY5za9GeLQw=="], "@smithy/credential-provider-imds": ["@smithy/credential-provider-imds@4.2.5", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.5", "@smithy/property-provider": "^4.2.5", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ=="], "@smithy/eventstream-codec": ["@smithy/eventstream-codec@4.2.5", "", { "dependencies": { "@aws-crypto/crc32": "5.2.0", "@smithy/types": "^4.9.0", "@smithy/util-hex-encoding": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-Ogt4Zi9hEbIP17oQMd68qYOHUzmH47UkK7q7Gl55iIm9oKt27MUGrC5JfpMroeHjdkOliOA4Qt3NQ1xMq/nrlA=="], + "@smithy/eventstream-serde-browser": ["@smithy/eventstream-serde-browser@4.2.5", "", { "dependencies": { "@smithy/eventstream-serde-universal": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-HohfmCQZjppVnKX2PnXlf47CW3j92Ki6T/vkAT2DhBR47e89pen3s4fIa7otGTtrVxmj7q+IhH0RnC5kpR8wtw=="], + + "@smithy/eventstream-serde-config-resolver": ["@smithy/eventstream-serde-config-resolver@4.3.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-ibjQjM7wEXtECiT6my1xfiMH9IcEczMOS6xiCQXoUIYSj5b1CpBbJ3VYbdwDy8Vcg5JHN7eFpOCGk8nyZAltNQ=="], + + "@smithy/eventstream-serde-node": ["@smithy/eventstream-serde-node@4.2.5", "", { "dependencies": { "@smithy/eventstream-serde-universal": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-+elOuaYx6F2H6x1/5BQP5ugv12nfJl66GhxON8+dWVUEDJ9jah/A0tayVdkLRP0AeSac0inYkDz5qBFKfVp2Gg=="], + + "@smithy/eventstream-serde-universal": ["@smithy/eventstream-serde-universal@4.2.5", "", { "dependencies": { "@smithy/eventstream-codec": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-G9WSqbST45bmIFaeNuP/EnC19Rhp54CcVdX9PDL1zyEB514WsDVXhlyihKlGXnRycmHNmVv88Bvvt4EYxWef/Q=="], + "@smithy/fetch-http-handler": ["@smithy/fetch-http-handler@5.3.6", "", { "dependencies": { "@smithy/protocol-http": "^5.3.5", "@smithy/querystring-builder": "^4.2.5", "@smithy/types": "^4.9.0", "@smithy/util-base64": "^4.3.0", "tslib": "^2.6.2" } }, "sha512-3+RG3EA6BBJ/ofZUeTFJA7mHfSYrZtQIrDP9dI8Lf7X6Jbos2jptuLrAAteDiFVrmbEmLSuRG/bUKzfAXk7dhg=="], + "@smithy/hash-blob-browser": ["@smithy/hash-blob-browser@4.2.6", "", { "dependencies": { "@smithy/chunked-blob-reader": "^5.2.0", "@smithy/chunked-blob-reader-native": "^4.2.1", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-8P//tA8DVPk+3XURk2rwcKgYwFvwGwmJH/wJqQiSKwXZtf/LiZK+hbUZmPj/9KzM+OVSwe4o85KTp5x9DUZTjw=="], + "@smithy/hash-node": ["@smithy/hash-node@4.2.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "@smithy/util-buffer-from": "^4.2.0", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-DpYX914YOfA3UDT9CN1BM787PcHfWRBB43fFGCYrZFUH0Jv+5t8yYl+Pd5PW4+QzoGEDvn5d5QIO4j2HyYZQSA=="], + "@smithy/hash-stream-node": ["@smithy/hash-stream-node@4.2.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-6+do24VnEyvWcGdHXomlpd0m8bfZePpUKBy7m311n+JuRwug8J4dCanJdTymx//8mi0nlkflZBvJe+dEO/O12Q=="], + "@smithy/invalid-dependency": ["@smithy/invalid-dependency@4.2.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-2L2erASEro1WC5nV+plwIMxrTXpvpfzl4e+Nre6vBVRR2HKeGGcvpJyyL3/PpiSg+cJG2KpTmZmq934Olb6e5A=="], "@smithy/is-array-buffer": ["@smithy/is-array-buffer@4.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ=="], + "@smithy/md5-js": ["@smithy/md5-js@4.2.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-Bt6jpSTMWfjCtC0s79gZ/WZ1w90grfmopVOWqkI2ovhjpD5Q2XRXuecIPB9689L2+cCySMbaXDhBPU56FKNDNg=="], + "@smithy/middleware-content-length": ["@smithy/middleware-content-length@4.2.5", "", { "dependencies": { "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-Y/RabVa5vbl5FuHYV2vUCwvh/dqzrEY/K2yWPSqvhFUwIY0atLqO4TienjBXakoy4zrKAMCZwg+YEqmH7jaN7A=="], - "@smithy/middleware-endpoint": ["@smithy/middleware-endpoint@4.3.7", "", { "dependencies": { "@smithy/core": "^3.18.0", "@smithy/middleware-serde": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-middleware": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-i8Mi8OuY6Yi82Foe3iu7/yhBj1HBRoOQwBSsUNYglJTNSFaWYTNM2NauBBs/7pq2sqkLRqeUXA3Ogi2utzpUlQ=="], + "@smithy/middleware-endpoint": ["@smithy/middleware-endpoint@4.3.12", "", { "dependencies": { "@smithy/core": "^3.18.5", "@smithy/middleware-serde": "^4.2.6", "@smithy/node-config-provider": "^4.3.5", "@smithy/shared-ini-file-loader": "^4.4.0", "@smithy/types": "^4.9.0", "@smithy/url-parser": "^4.2.5", "@smithy/util-middleware": "^4.2.5", "tslib": "^2.6.2" } }, "sha512-9pAX/H+VQPzNbouhDhkW723igBMLgrI8OtX+++M7iKJgg/zY/Ig3i1e6seCcx22FWhE6Q/S61BRdi2wXBORT+A=="], - "@smithy/middleware-retry": ["@smithy/middleware-retry@4.4.7", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/service-error-classification": "^4.2.5", "@smithy/smithy-client": "^4.9.3", "@smithy/types": "^4.9.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/uuid": "^1.1.0", "tslib": "^2.6.2" } }, "sha512-E7Vc6WHCHlzDRTx1W0jZ6J1L6ziEV0PIWcUdmfL4y+c8r7WYr6I+LkQudaD8Nfb7C5c4P3SQ972OmXHtv6m/OA=="], + "@smithy/middleware-retry": ["@smithy/middleware-retry@4.4.12", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.5", "@smithy/protocol-http": "^5.3.5", "@smithy/service-error-classification": "^4.2.5", "@smithy/smithy-client": "^4.9.8", "@smithy/types": "^4.9.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-retry": "^4.2.5", "@smithy/uuid": "^1.1.0", "tslib": "^2.6.2" } }, "sha512-S4kWNKFowYd0lID7/DBqWHOQxmxlsf0jBaos9chQZUWTVOjSW1Ogyh8/ib5tM+agFDJ/TCxuCTvrnlc+9cIBcQ=="], - "@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.5", "", { "dependencies": { "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-La1ldWTJTZ5NqQyPqnCNeH9B+zjFhrNoQIL1jTh4zuqXRlmXhxYHhMtI1/92OlnoAtp6JoN7kzuwhWoXrBwPqg=="], + "@smithy/middleware-serde": ["@smithy/middleware-serde@4.2.6", "", { "dependencies": { "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ=="], "@smithy/middleware-stack": ["@smithy/middleware-stack@4.2.5", "", { "dependencies": { "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ=="], @@ -1272,7 +1352,7 @@ "@smithy/signature-v4": ["@smithy/signature-v4@5.3.5", "", { "dependencies": { "@smithy/is-array-buffer": "^4.2.0", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-hex-encoding": "^4.2.0", "@smithy/util-middleware": "^4.2.5", "@smithy/util-uri-escape": "^4.2.0", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-xSUfMu1FT7ccfSXkoLl/QRQBi2rOvi3tiBZU2Tdy3I6cgvZ6SEi9QNey+lqps/sJRnogIS+lq+B1gxxbra2a/w=="], - "@smithy/smithy-client": ["@smithy/smithy-client@4.9.3", "", { "dependencies": { "@smithy/core": "^3.18.0", "@smithy/middleware-endpoint": "^4.3.7", "@smithy/middleware-stack": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-stream": "^4.5.6", "tslib": "^2.6.2" } }, "sha512-8tlueuTgV5n7inQCkhyptrB3jo2AO80uGrps/XTYZivv5MFQKKBj3CIWIGMI2fRY5LEduIiazOhAWdFknY1O9w=="], + "@smithy/smithy-client": ["@smithy/smithy-client@4.9.8", "", { "dependencies": { "@smithy/core": "^3.18.5", "@smithy/middleware-endpoint": "^4.3.12", "@smithy/middleware-stack": "^4.2.5", "@smithy/protocol-http": "^5.3.5", "@smithy/types": "^4.9.0", "@smithy/util-stream": "^4.5.6", "tslib": "^2.6.2" } }, "sha512-8xgq3LgKDEFoIrLWBho/oYKyWByw9/corz7vuh1upv7ZBm0ZMjGYBhbn6v643WoIqA9UTcx5A5htEp/YatUwMA=="], "@smithy/types": ["@smithy/types@4.9.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA=="], @@ -1288,9 +1368,9 @@ "@smithy/util-config-provider": ["@smithy/util-config-provider@4.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q=="], - "@smithy/util-defaults-mode-browser": ["@smithy/util-defaults-mode-browser@4.3.6", "", { "dependencies": { "@smithy/property-provider": "^4.2.5", "@smithy/smithy-client": "^4.9.3", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-kbpuXbEf2YQ9zEE6eeVnUCQWO0e1BjMnKrXL8rfXgiWA0m8/E0leU4oSNzxP04WfCmW8vjEqaDeXWxwE4tpOjQ=="], + "@smithy/util-defaults-mode-browser": ["@smithy/util-defaults-mode-browser@4.3.11", "", { "dependencies": { "@smithy/property-provider": "^4.2.5", "@smithy/smithy-client": "^4.9.8", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-yHv+r6wSQXEXTPVCIQTNmXVWs7ekBTpMVErjqZoWkYN75HIFN5y9+/+sYOejfAuvxWGvgzgxbTHa/oz61YTbKw=="], - "@smithy/util-defaults-mode-node": ["@smithy/util-defaults-mode-node@4.2.9", "", { "dependencies": { "@smithy/config-resolver": "^4.4.3", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/property-provider": "^4.2.5", "@smithy/smithy-client": "^4.9.3", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-dgyribrVWN5qE5usYJ0m5M93mVM3L3TyBPZWe1Xl6uZlH2gzfQx3dz+ZCdW93lWqdedJRkOecnvbnoEEXRZ5VQ=="], + "@smithy/util-defaults-mode-node": ["@smithy/util-defaults-mode-node@4.2.14", "", { "dependencies": { "@smithy/config-resolver": "^4.4.3", "@smithy/credential-provider-imds": "^4.2.5", "@smithy/node-config-provider": "^4.3.5", "@smithy/property-provider": "^4.2.5", "@smithy/smithy-client": "^4.9.8", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-ljZN3iRvaJUgulfvobIuG97q1iUuCMrvXAlkZ4msY+ZuVHQHDIqn7FKZCEj+bx8omz6kF5yQXms/xhzjIO5XiA=="], "@smithy/util-endpoints": ["@smithy/util-endpoints@3.2.5", "", { "dependencies": { "@smithy/node-config-provider": "^4.3.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-3O63AAWu2cSNQZp+ayl9I3NapW1p1rR5mlVHcF6hAB1dPZUQFfRPYtplWX/3xrzWthPGj5FqB12taJJCfH6s8A=="], @@ -1306,6 +1386,8 @@ "@smithy/util-utf8": ["@smithy/util-utf8@4.2.0", "", { "dependencies": { "@smithy/util-buffer-from": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw=="], + "@smithy/util-waiter": ["@smithy/util-waiter@4.2.5", "", { "dependencies": { "@smithy/abort-controller": "^4.2.5", "@smithy/types": "^4.9.0", "tslib": "^2.6.2" } }, "sha512-Dbun99A3InifQdIrsXZ+QLcC0PGBPAdrl4cj1mTgJvyc9N2zf7QSxg8TBkzsCmGJdE3TLbO9ycwpY0EkWahQ/g=="], + "@smithy/uuid": ["@smithy/uuid@1.1.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw=="], "@solid-primitives/active-element": ["@solid-primitives/active-element@2.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-9t5K4aR2naVDj950XU8OjnLgOg94a8k5wr6JNOPK+N5ESLsJDq42c1ZP8UKpewi1R+wplMMxiM6OPKRzbxJY7A=="], @@ -1386,7 +1468,7 @@ "@tanstack/directive-functions-plugin": ["@tanstack/directive-functions-plugin@1.121.21", "", { "dependencies": { "@babel/code-frame": "7.26.2", "@babel/core": "^7.26.8", "@babel/traverse": "^7.26.8", "@babel/types": "^7.26.8", "@tanstack/router-utils": "^1.121.21", "babel-dead-code-elimination": "^1.0.10", "tiny-invariant": "^1.3.3" }, "peerDependencies": { "vite": ">=6.0.0" } }, "sha512-B9z/HbF7gJBaRHieyX7f2uQ4LpLLAVAEutBZipH6w+CYD6RHRJvSVPzECGHF7icFhNWTiJQL2QR6K07s59yzEw=="], - "@tanstack/router-utils": ["@tanstack/router-utils@1.133.19", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/parser": "^7.27.5", "@babel/preset-typescript": "^7.27.1", "ansis": "^4.1.0", "diff": "^8.0.2", "pathe": "^2.0.3", "tinyglobby": "^0.2.15" } }, "sha512-WEp5D2gPxvlLDRXwD/fV7RXjYtqaqJNXKB/L6OyZEbT+9BG/Ib2d7oG9GSUZNNMGPGYAlhBUOi3xutySsk6rxA=="], + "@tanstack/router-utils": ["@tanstack/router-utils@1.139.0", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/generator": "^7.27.5", "@babel/parser": "^7.27.5", "@babel/preset-typescript": "^7.27.1", "ansis": "^4.1.0", "diff": "^8.0.2", "pathe": "^2.0.3", "tinyglobby": "^0.2.15" } }, "sha512-jT7D6NimWqoFSkid4vCno8gvTyfL1+NHpgm3es0B2UNhKKRV3LngOGilm1m6v8Qvk/gy6Fh/tvB+s+hBl6GhOg=="], "@tanstack/server-functions-plugin": ["@tanstack/server-functions-plugin@1.121.21", "", { "dependencies": { "@babel/code-frame": "7.26.2", "@babel/core": "^7.26.8", "@babel/plugin-syntax-jsx": "^7.25.9", "@babel/plugin-syntax-typescript": "^7.25.9", "@babel/template": "^7.26.8", "@babel/traverse": "^7.26.8", "@babel/types": "^7.26.8", "@tanstack/directive-functions-plugin": "1.121.21", "babel-dead-code-elimination": "^1.0.9", "tiny-invariant": "^1.3.3" } }, "sha512-a05fzK+jBGacsSAc1vE8an7lpBh4H0PyIEcivtEyHLomgSeElAJxm9E2It/0nYRZ5Lh23m0okbhzJNaYWZpAOg=="], @@ -1508,7 +1590,9 @@ "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], - "@vercel/nft": ["@vercel/nft@0.30.3", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", "acorn": "^8.6.0", "acorn-import-attributes": "^1.9.5", "async-sema": "^3.1.1", "bindings": "^1.4.0", "estree-walker": "2.0.2", "glob": "^10.4.5", "graceful-fs": "^4.2.9", "node-gyp-build": "^4.2.2", "picomatch": "^4.0.2", "resolve-from": "^5.0.0" }, "bin": { "nft": "out/cli.js" } }, "sha512-UEq+eF0ocEf9WQCV1gktxKhha36KDs7jln5qii6UpPf5clMqDc0p3E7d9l2Smx0i9Pm1qpq4S4lLfNl97bbv6w=="], + "@valibot/to-json-schema": ["@valibot/to-json-schema@1.3.0", "", { "peerDependencies": { "valibot": "^1.1.0" } }, "sha512-82Vv6x7sOYhv5YmTRgSppSqj1nn2pMCk5BqCMGWYp0V/fq+qirrbGncqZAtZ09/lrO40ne/7z8ejwE728aVreg=="], + + "@vercel/nft": ["@vercel/nft@0.30.4", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", "acorn": "^8.6.0", "acorn-import-attributes": "^1.9.5", "async-sema": "^3.1.1", "bindings": "^1.4.0", "estree-walker": "2.0.2", "glob": "^10.5.0", "graceful-fs": "^4.2.9", "node-gyp-build": "^4.2.2", "picomatch": "^4.0.2", "resolve-from": "^5.0.0" }, "bin": { "nft": "out/cli.js" } }, "sha512-wE6eAGSXScra60N2l6jWvNtVK0m+sh873CpfZW4KI2v8EHuUQp+mSEi4T+IcdPCSEDgCdAS/7bizbhQlkjzrSA=="], "@vercel/oidc": ["@vercel/oidc@3.0.5", "", {}, "sha512-fnYhv671l+eTTp48gB4zEsTW/YtRgRPnkI2nT7x6qw5rkI1Lq2hTmQIpHPgyThI0znLK+vX2n9XxKdXZ7BUbbw=="], @@ -1654,7 +1738,7 @@ "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.25", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.30", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA=="], "bcp-47": ["bcp-47@2.1.0", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w=="], @@ -1732,7 +1816,7 @@ "camelcase-css": ["camelcase-css@2.0.1", "", {}, "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="], - "caniuse-lite": ["caniuse-lite@1.0.30001754", "", {}, "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg=="], + "caniuse-lite": ["caniuse-lite@1.0.30001756", "", {}, "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A=="], "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], @@ -1842,7 +1926,7 @@ "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], - "css-selector-parser": ["css-selector-parser@3.1.3", "", {}, "sha512-gJMigczVZqYAk0hPVzx/M4Hm1D9QOtqkdQk9005TNzDIUGzo5cnHEDiKUT7jGPximL/oYb+LIitcHFQ4aKupxg=="], + "css-selector-parser": ["css-selector-parser@3.2.0", "", {}, "sha512-L1bdkNKUP5WYxiW5dW6vA2hd3sL8BdRNLy2FCX0rLVise4eNw9nBdeBuJHxlELieSE2H1f6bYQFfwVUwWCV9rQ=="], "css-tree": ["css-tree@3.1.0", "", { "dependencies": { "mdn-data": "2.12.2", "source-map-js": "^1.0.1" } }, "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w=="], @@ -1850,7 +1934,7 @@ "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="], - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], "data-view-buffer": ["data-view-buffer@1.0.2", "", { "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", "is-data-view": "^1.0.2" } }, "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ=="], @@ -1874,9 +1958,9 @@ "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], - "default-browser": ["default-browser@5.2.1", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg=="], + "default-browser": ["default-browser@5.4.0", "", { "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" } }, "sha512-XDuvSq38Hr1MdN47EDvYtx3U0MTqpCEn+F6ft8z2vYDzMrvQhVp0ui9oQdqW3MvK3vqUETglt1tVGgjLuJ5izg=="], - "default-browser-id": ["default-browser-id@5.0.0", "", {}, "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA=="], + "default-browser-id": ["default-browser-id@5.0.1", "", {}, "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q=="], "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], @@ -1906,7 +1990,7 @@ "deterministic-object-hash": ["deterministic-object-hash@2.0.2", "", { "dependencies": { "base-64": "^1.0.0" } }, "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ=="], - "devalue": ["devalue@5.4.2", "", {}, "sha512-MwPZTKEPK2k8Qgfmqrd48ZKVvzSQjgW0lXLxiIBA8dQjtf/6mw6pggHNLcyDKyf+fI6eXxlQwPsfaCMTU5U+Bw=="], + "devalue": ["devalue@5.5.0", "", {}, "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w=="], "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], @@ -1954,7 +2038,7 @@ "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "electron-to-chromium": ["electron-to-chromium@1.5.250", "", {}, "sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw=="], + "electron-to-chromium": ["electron-to-chromium@1.5.259", "", {}, "sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ=="], "emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="], @@ -2100,7 +2184,7 @@ "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - "form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="], + "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], "form-data-encoder": ["form-data-encoder@1.7.2", "", {}, "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A=="], @@ -2136,7 +2220,7 @@ "gcp-metadata": ["gcp-metadata@6.1.1", "", { "dependencies": { "gaxios": "^6.1.1", "google-logging-utils": "^0.0.2", "json-bigint": "^1.0.0" } }, "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A=="], - "gel": ["gel@2.1.1", "", { "dependencies": { "@petamoriken/float16": "^3.8.7", "debug": "^4.3.4", "env-paths": "^3.0.0", "semver": "^7.6.2", "shell-quote": "^1.8.1", "which": "^4.0.0" }, "bin": { "gel": "dist/cli.mjs" } }, "sha512-Newg9X7mRYskoBjSw70l1YnJ/ZGbq64VPyR821H5WVkTGpHG2O0mQILxCeUhxdYERLFY9B4tUyKLyf3uMTjtKw=="], + "gel": ["gel@2.2.0", "", { "dependencies": { "@petamoriken/float16": "^3.8.7", "debug": "^4.3.4", "env-paths": "^3.0.0", "semver": "^7.6.2", "shell-quote": "^1.8.1", "which": "^4.0.0" }, "bin": { "gel": "dist/cli.mjs" } }, "sha512-q0ma7z2swmoamHQusey8ayo8+ilVdzDt4WTxSPzq/yRqvucWRfymRVMvNgmSC0XK7eNjjEZEcplxpgaNojKdmQ=="], "generate-function": ["generate-function@2.3.1", "", { "dependencies": { "is-property": "^1.0.2" } }, "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ=="], @@ -2170,7 +2254,7 @@ "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], - "glob": ["glob@11.0.3", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.0.3", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA=="], + "glob": ["glob@11.1.0", "", { "dependencies": { "foreground-child": "^3.3.1", "jackspeak": "^4.1.1", "minimatch": "^10.1.1", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw=="], "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], @@ -2316,7 +2400,7 @@ "ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="], - "inline-style-parser": ["inline-style-parser@0.2.6", "", {}, "sha512-gtGXVaBdl5mAes3rPcMedEBm12ibjt1kDMFfheul1wUAOVEJW60voNdMVzVkfLN06O7ZaD/rxhfKgtlgtTbMjg=="], + "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="], @@ -2478,7 +2562,7 @@ "klona": ["klona@2.0.6", "", {}, "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA=="], - "knitwork": ["knitwork@1.2.0", "", {}, "sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg=="], + "knitwork": ["knitwork@1.3.0", "", {}, "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw=="], "lang-map": ["lang-map@0.4.0", "", { "dependencies": { "language-map": "^1.1.0" } }, "sha512-oiSqZIEUnWdFeDNsp4HId4tAxdFbx5iMBOwA3666Fn2L8Khj8NiD9xRvMsGmKXopPVkaDFtSv3CJOmXFUB0Hcg=="], @@ -2552,7 +2636,7 @@ "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], - "lru.min": ["lru.min@1.1.2", "", {}, "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg=="], + "lru.min": ["lru.min@1.1.3", "", {}, "sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q=="], "luxon": ["luxon@3.6.1", "", {}, "sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ=="], @@ -2700,13 +2784,13 @@ "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], - "mime-types": ["mime-types@3.0.1", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA=="], + "mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], "mimic-fn": ["mimic-fn@4.0.0", "", {}, "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="], "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], - "miniflare": ["miniflare@4.20251105.0", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "sharp": "^0.33.5", "stoppable": "1.1.0", "undici": "7.14.0", "workerd": "1.20251105.0", "ws": "8.18.0", "youch": "4.1.0-beta.10", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-n+lCQbGLPjHFm5EKMohxCl+hLIki9rIlJSU9FkYKdJ62cGacetmTH5IgWUZhUFFM+NqhqZLOuWXTAsoZTm0hog=="], + "miniflare": ["miniflare@4.20251118.1", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "acorn": "8.14.0", "acorn-walk": "8.3.2", "exit-hook": "2.2.1", "glob-to-regexp": "0.4.1", "sharp": "^0.33.5", "stoppable": "1.1.0", "undici": "7.14.0", "workerd": "1.20251118.0", "ws": "8.18.0", "youch": "4.1.0-beta.10", "zod": "3.22.3" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-uLSAE/DvOm392fiaig4LOaatxLjM7xzIniFRG5Y3yF9IduOYLLK/pkCPQNCgKQH3ou0YJRHnTN+09LPfqYNTQQ=="], "minimatch": ["minimatch@10.0.3", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw=="], @@ -2750,7 +2834,7 @@ "no-case": ["no-case@3.0.4", "", { "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg=="], - "node-abi": ["node-abi@3.80.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA=="], + "node-abi": ["node-abi@3.85.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-zsFhmbkAzwhTft6nd3VxcG0cvJsT70rL+BIGHWVq5fi6MwGrHwzqKaxXE+Hl2GmnGItnDKPPkO5/LQqjVkIdFg=="], "node-addon-api": ["node-addon-api@6.1.0", "", {}, "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="], @@ -2808,7 +2892,7 @@ "oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="], - "oniguruma-to-es": ["oniguruma-to-es@4.3.3", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg=="], + "oniguruma-to-es": ["oniguruma-to-es@4.3.4", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA=="], "open": ["open@10.1.2", "", { "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", "is-inside-container": "^1.0.0", "is-wsl": "^3.1.0" } }, "sha512-cxN6aIDPz6rm8hbebcP7vrQNhvRcveZoJU72Y7vskh4oIm+BZwBECnx5nTmrlres1Qapvx27Qo1Auukpf8PKXw=="], @@ -2892,6 +2976,8 @@ "perfect-debounce": ["perfect-debounce@2.0.0", "", {}, "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow=="], + "piccolore": ["piccolore@0.1.3", "", {}, "sha512-o8bTeDWjE086iwKrROaDf31K0qC/BENdm15/uH9usSC/uZjJOKb2YGiVHfLY4GhwsERiPI1jmwI2XrA7ACOxVw=="], + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], @@ -3096,7 +3182,7 @@ "reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="], - "rollup": ["rollup@4.53.2", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.2", "@rollup/rollup-android-arm64": "4.53.2", "@rollup/rollup-darwin-arm64": "4.53.2", "@rollup/rollup-darwin-x64": "4.53.2", "@rollup/rollup-freebsd-arm64": "4.53.2", "@rollup/rollup-freebsd-x64": "4.53.2", "@rollup/rollup-linux-arm-gnueabihf": "4.53.2", "@rollup/rollup-linux-arm-musleabihf": "4.53.2", "@rollup/rollup-linux-arm64-gnu": "4.53.2", "@rollup/rollup-linux-arm64-musl": "4.53.2", "@rollup/rollup-linux-loong64-gnu": "4.53.2", "@rollup/rollup-linux-ppc64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-gnu": "4.53.2", "@rollup/rollup-linux-riscv64-musl": "4.53.2", "@rollup/rollup-linux-s390x-gnu": "4.53.2", "@rollup/rollup-linux-x64-gnu": "4.53.2", "@rollup/rollup-linux-x64-musl": "4.53.2", "@rollup/rollup-openharmony-arm64": "4.53.2", "@rollup/rollup-win32-arm64-msvc": "4.53.2", "@rollup/rollup-win32-ia32-msvc": "4.53.2", "@rollup/rollup-win32-x64-gnu": "4.53.2", "@rollup/rollup-win32-x64-msvc": "4.53.2", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g=="], + "rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="], "rollup-plugin-visualizer": ["rollup-plugin-visualizer@6.0.5", "", { "dependencies": { "open": "^8.0.0", "picomatch": "^4.0.2", "source-map": "^0.7.4", "yargs": "^17.5.1" }, "peerDependencies": { "rolldown": "1.x || ^1.0.0-beta", "rollup": "2.x || 3.x || 4.x" }, "optionalPeers": ["rolldown", "rollup"], "bin": { "rollup-plugin-visualizer": "dist/bin/cli.js" } }, "sha512-9+HlNgKCVbJDs8tVtjQ43US12eqaiHyyiLMdBwQ7vSZPiHMysGNo2E88TAp1si5wx8NAoYriI2A5kuKfIakmJg=="], @@ -3138,9 +3224,9 @@ "serialize-javascript": ["serialize-javascript@6.0.2", "", { "dependencies": { "randombytes": "^2.1.0" } }, "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g=="], - "seroval": ["seroval@1.3.2", "", {}, "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ=="], + "seroval": ["seroval@1.4.0", "", {}, "sha512-BdrNXdzlofomLTiRnwJTSEAaGKyHHZkbMXIywOh7zlzp4uZnXErEwl9XZ+N1hJSNpeTtNxWvVwN0wUzAIQ4Hpg=="], - "seroval-plugins": ["seroval-plugins@1.3.3", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w=="], + "seroval-plugins": ["seroval-plugins@1.4.0", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-zir1aWzoiax6pbBVjoYVd0O1QQXgIL3eVGBMsBsNmM8Ukq90yGaWlfx0AB9dTS8GPqrOrbXn79vmItCUP9U3BQ=="], "serve-placeholder": ["serve-placeholder@2.0.2", "", { "dependencies": { "defu": "^6.1.4" } }, "sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ=="], @@ -3192,9 +3278,9 @@ "smob": ["smob@1.5.0", "", {}, "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig=="], - "smol-toml": ["smol-toml@1.4.2", "", {}, "sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g=="], + "smol-toml": ["smol-toml@1.5.2", "", {}, "sha512-QlaZEqcAH3/RtNyet1IPIYPsEWAaYyXXv1Krsi+1L/QHppjX4Ifm8MQsBISz9vE8cHicIq3clogsheili5vhaQ=="], - "solid-js": ["solid-js@1.9.9", "", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.3.0", "seroval-plugins": "~1.3.0" } }, "sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA=="], + "solid-js": ["solid-js@1.9.10", "", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.3.0", "seroval-plugins": "~1.3.0" } }, "sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew=="], "solid-list": ["solid-list@0.3.0", "", { "dependencies": { "@corvu/utils": "~0.4.0" }, "peerDependencies": { "solid-js": "^1.8" } }, "sha512-t4hx/F/l8Vmq+ib9HtZYl7Z9F1eKxq3eKJTXlvcm7P7yI4Z8O7QSOOEVHb/K6DD7M0RxzVRobK/BS5aSfLRwKg=="], @@ -3286,11 +3372,11 @@ "strtok3": ["strtok3@6.3.0", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" } }, "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw=="], - "style-to-js": ["style-to-js@1.1.19", "", { "dependencies": { "style-to-object": "1.0.12" } }, "sha512-Ev+SgeqiNGT1ufsXyVC5RrJRXdrkRJ1Gol9Qw7Pb72YCKJXrBvP0ckZhBeVSrw2m06DJpei2528uIpjMb4TsoQ=="], + "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="], - "style-to-object": ["style-to-object@1.0.12", "", { "dependencies": { "inline-style-parser": "0.2.6" } }, "sha512-ddJqYnoT4t97QvN2C95bCgt+m7AAgXjVnkk/jxAfmp7EAB8nnqqZYEbMd3em7/vEomDb2LAQKAy1RFfv41mdNw=="], + "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="], - "sucrase": ["sucrase@3.35.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA=="], + "sucrase": ["sucrase@3.35.1", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", "tinyglobby": "^0.2.11", "ts-interface-checker": "^0.1.9" }, "bin": { "sucrase": "bin/sucrase", "sucrase-node": "bin/sucrase-node" } }, "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw=="], "superstruct": ["superstruct@1.0.4", "", {}, "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ=="], @@ -3298,6 +3384,8 @@ "supports-preserve-symlinks-flag": ["supports-preserve-symlinks-flag@1.0.0", "", {}, "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="], + "sury": ["sury@11.0.0-alpha.4", "", { "peerDependencies": { "rescript": "12.x" }, "optionalPeers": ["rescript"] }, "sha512-oeG/GJWZvQCKtGPpLbu0yCZudfr5LxycDo5kh7SJmKHDPCsEPJssIZL2Eb4Tl7g9aPEvIDuRrkS+L0pybsMEMA=="], + "system-architecture": ["system-architecture@0.1.0", "", {}, "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA=="], "tagged-tag": ["tagged-tag@1.0.0", "", {}, "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng=="], @@ -3462,7 +3550,7 @@ "unplugin-utils": ["unplugin-utils@0.3.1", "", { "dependencies": { "pathe": "^2.0.3", "picomatch": "^4.0.3" } }, "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog=="], - "unstorage": ["unstorage@1.17.2", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.4", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.0", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-cKEsD6iBWJgOMJ6vW1ID/SYuqNf8oN4yqRk8OYqaVQ3nnkJXOT1PSpaMh2QfzLs78UN5kSNRD2c/mgjT8tX7+w=="], + "unstorage": ["unstorage@1.17.3", "", { "dependencies": { "anymatch": "^3.1.3", "chokidar": "^4.0.3", "destr": "^2.0.5", "h3": "^1.15.4", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.7", "ofetch": "^1.5.1", "ufo": "^1.6.1" }, "peerDependencies": { "@azure/app-configuration": "^1.8.0", "@azure/cosmos": "^4.2.0", "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.6.0", "@azure/keyvault-secrets": "^4.9.0", "@azure/storage-blob": "^12.26.0", "@capacitor/preferences": "^6.0.3 || ^7.0.0", "@deno/kv": ">=0.9.0", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", "@vercel/blob": ">=0.27.1", "@vercel/functions": "^2.2.12 || ^3.0.0", "@vercel/kv": "^1.0.1", "aws4fetch": "^1.0.20", "db0": ">=0.2.1", "idb-keyval": "^6.2.1", "ioredis": "^5.4.2", "uploadthing": "^7.4.4" }, "optionalPeers": ["@azure/app-configuration", "@azure/cosmos", "@azure/data-tables", "@azure/identity", "@azure/keyvault-secrets", "@azure/storage-blob", "@capacitor/preferences", "@deno/kv", "@netlify/blobs", "@planetscale/database", "@upstash/redis", "@vercel/blob", "@vercel/functions", "@vercel/kv", "aws4fetch", "db0", "idb-keyval", "ioredis", "uploadthing"] }, "sha512-i+JYyy0DoKmQ3FximTHbGadmIYb8JEpq7lxUjnjeB702bCPum0vzo6oy5Mfu0lpqISw7hCyMW2yj4nWC8bqJ3Q=="], "untun": ["untun@0.1.3", "", { "dependencies": { "citty": "^0.1.5", "consola": "^3.2.3", "pathe": "^1.1.1" }, "bin": { "untun": "bin/untun.mjs" } }, "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ=="], @@ -3492,6 +3580,8 @@ "uuid": ["uuid@8.0.0", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw=="], + "valibot": ["valibot@1.1.0", "", { "peerDependencies": { "typescript": ">=5" }, "optionalPeers": ["typescript"] }, "sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw=="], + "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="], "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], @@ -3510,7 +3600,7 @@ "vite-plugin-icons-spritesheet": ["vite-plugin-icons-spritesheet@3.0.1", "", { "dependencies": { "chalk": "^5.4.1", "glob": "^11.0.1", "node-html-parser": "^7.0.1", "tinyexec": "^0.3.2" }, "peerDependencies": { "vite": ">=5.2.0" } }, "sha512-Cr0+Z6wRMwSwKisWW9PHeTjqmQFv0jwRQQMc3YgAhAgZEe03j21el0P/CA31KN/L5eiL1LhR14VTXl96LetonA=="], - "vite-plugin-solid": ["vite-plugin-solid@2.11.8", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-hFrCxBfv3B1BmFqnJF4JOCYpjrmi/zwyeKjcomQ0khh8HFyQ8SbuBWQ7zGojfrz6HUOBFrJBNySDi/JgAHytWg=="], + "vite-plugin-solid": ["vite-plugin-solid@2.11.10", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw=="], "vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], @@ -3548,9 +3638,9 @@ "wordwrap": ["wordwrap@1.0.0", "", {}, "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="], - "workerd": ["workerd@1.20251105.0", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20251105.0", "@cloudflare/workerd-darwin-arm64": "1.20251105.0", "@cloudflare/workerd-linux-64": "1.20251105.0", "@cloudflare/workerd-linux-arm64": "1.20251105.0", "@cloudflare/workerd-windows-64": "1.20251105.0" }, "bin": { "workerd": "bin/workerd" } }, "sha512-8D1UmsxrRr3Go7enbYCsYoiWeGn66u1WFNojPSgtjp7z8pV2cXskjr05vQ1OOzl7+rg1hDDofnCJqVwChMym8g=="], + "workerd": ["workerd@1.20251118.0", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20251118.0", "@cloudflare/workerd-darwin-arm64": "1.20251118.0", "@cloudflare/workerd-linux-64": "1.20251118.0", "@cloudflare/workerd-linux-arm64": "1.20251118.0", "@cloudflare/workerd-windows-64": "1.20251118.0" }, "bin": { "workerd": "bin/workerd" } }, "sha512-Om5ns0Lyx/LKtYI04IV0bjIrkBgoFNg0p6urzr2asekJlfP18RqFzyqMFZKf0i9Gnjtz/JfAS/Ol6tjCe5JJsQ=="], - "wrangler": ["wrangler@4.46.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.4.0", "@cloudflare/unenv-preset": "2.7.9", "blake3-wasm": "2.1.5", "esbuild": "0.25.4", "miniflare": "4.20251105.0", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20251105.0" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20251014.0" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-WRROO7CL+MW/E44RMT4X7w32qPjufiPpGdey5D6H7iKzzVqfUkTRULxYBfWANiU1yGnsiCXQtu3Ap0G2TmohtA=="], + "wrangler": ["wrangler@4.50.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.4.0", "@cloudflare/unenv-preset": "2.7.11", "blake3-wasm": "2.1.5", "esbuild": "0.25.4", "miniflare": "4.20251118.1", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20251118.0" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20251118.0" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js" } }, "sha512-+nuZuHZxDdKmAyXOSrHlciGshCoAPiy5dM+t6mEohWm7HpXvTHmWQGUf/na9jjWlWJHCJYOWzkA1P5HBJqrIEA=="], "wrap-ansi": ["wrap-ansi@9.0.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", "strip-ansi": "^7.1.0" } }, "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww=="], @@ -3588,7 +3678,7 @@ "yoga-layout": ["yoga-layout@3.2.1", "", {}, "sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ=="], - "youch": ["youch@4.1.0-beta.12", "", { "dependencies": { "@poppinss/colors": "^4.1.5", "@poppinss/dumper": "^0.6.5", "@speed-highlight/core": "^1.2.9", "cookie-es": "^2.0.0", "youch-core": "^0.3.3" } }, "sha512-X+AQ2EdigcZb2h1XQmBMm19TrrfKXxEXWpnf8ThbARwiiSf/pA7MvRTCj5VHCI9z3vjJBsDeqWWyvaI9Bfp9Pg=="], + "youch": ["youch@4.1.0-beta.13", "", { "dependencies": { "@poppinss/colors": "^4.1.5", "@poppinss/dumper": "^0.6.5", "@speed-highlight/core": "^1.2.9", "cookie-es": "^2.0.0", "youch-core": "^0.3.3" } }, "sha512-3+AG1Xvt+R7M7PSDudhbfbwiyveW6B8PLBIwTyEC598biEYIjHhC89i6DBEvR0EZUjGY3uGSnC429HpIa2Z09g=="], "youch-core": ["youch-core@0.3.3", "", { "dependencies": { "@poppinss/exception": "^1.2.2", "error-stack-parser-es": "^1.0.5" } }, "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA=="], @@ -3634,18 +3724,44 @@ "@astrojs/markdown-remark/@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.6.1", "", {}, "sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A=="], - "@astrojs/markdown-remark/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="], + "@astrojs/markdown-remark/shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], - "@astrojs/mdx/@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.8", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.4", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.2.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.13.0", "smol-toml": "^1.4.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", "vfile": "^6.0.3" } }, "sha512-uFNyFWadnULWK2cOw4n0hLKeu+xaVWeuECdP10cQ3K2fkybtTlhb7J7TcScdjmS8Yps7oje9S/ehYMfZrhrgCg=="], + "@astrojs/mdx/@astrojs/markdown-remark": ["@astrojs/markdown-remark@6.3.9", "", { "dependencies": { "@astrojs/internal-helpers": "0.7.5", "@astrojs/prism": "3.3.0", "github-slugger": "^2.0.0", "hast-util-from-html": "^2.0.3", "hast-util-to-text": "^4.0.2", "import-meta-resolve": "^4.2.0", "js-yaml": "^4.1.0", "mdast-util-definitions": "^6.0.0", "rehype-raw": "^7.0.0", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-smartypants": "^3.0.2", "shiki": "^3.13.0", "smol-toml": "^1.4.2", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.2", "vfile": "^6.0.3" } }, "sha512-hX2cLC/KW74Io1zIbn92kI482j9J7LleBLGCVU9EP3BeH5MVrnFawOnqD0t/q6D1Z+ZNeQG2gNKMslCcO36wng=="], "@astrojs/sitemap/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], "@astrojs/solid-js/vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], + "@aws-crypto/sha1-browser/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], + "@aws-crypto/sha256-browser/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], "@aws-crypto/util/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="], + "@aws-sdk/client-sts/@aws-sdk/core": ["@aws-sdk/core@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/core": "^3.2.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", "@smithy/signature-v4": "^5.0.2", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/util-middleware": "^4.0.2", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" } }, "sha512-8vpW4WihVfz0DX+7WnnLGm3GuQER++b0IwQG35JlQMlgqnc44M//KbJPsIHA0aJUJVwJAEShgfr5dUbY8WUzaA=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node": ["@aws-sdk/credential-provider-node@3.782.0", "", { "dependencies": { "@aws-sdk/credential-provider-env": "3.775.0", "@aws-sdk/credential-provider-http": "3.775.0", "@aws-sdk/credential-provider-ini": "3.782.0", "@aws-sdk/credential-provider-process": "3.775.0", "@aws-sdk/credential-provider-sso": "3.782.0", "@aws-sdk/credential-provider-web-identity": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-HZiAF+TCEyKjju9dgysjiPIWgt/+VerGaeEp18mvKLNfgKz1d+/82A2USEpNKTze7v3cMFASx3CvL8yYyF7mJw=="], + + "@aws-sdk/client-sts/@aws-sdk/middleware-host-header": ["@aws-sdk/middleware-host-header@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-tkSegM0Z6WMXpLB8oPys/d+umYIocvO298mGvcMCncpRl77L9XkvSLJIFzaHes+o7djAgIduYw8wKIMStFss2w=="], + + "@aws-sdk/client-sts/@aws-sdk/middleware-logger": ["@aws-sdk/middleware-logger@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-FaxO1xom4MAoUJsldmR92nT1G6uZxTdNYOFYtdHfd6N2wcNaTuxgjIvqzg5y7QIH9kn58XX/dzf1iTjgqUStZw=="], + + "@aws-sdk/client-sts/@aws-sdk/middleware-recursion-detection": ["@aws-sdk/middleware-recursion-detection@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-GLCzC8D0A0YDG5u3F5U03Vb9j5tcOEFhr8oc6PDk0k0vm5VwtZOE6LvK7hcCSoAB4HXyOUM0sQuXrbaAh9OwXA=="], + + "@aws-sdk/client-sts/@aws-sdk/middleware-user-agent": ["@aws-sdk/middleware-user-agent@3.782.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@smithy/core": "^3.2.0", "@smithy/protocol-http": "^5.1.0", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-i32H2R6IItX+bQ2p4+v2gGO2jA80jQoJO2m1xjU9rYWQW3+ErWy4I5YIuQHTBfb6hSdAHbaRfqPDgbv9J2rjEg=="], + + "@aws-sdk/client-sts/@aws-sdk/region-config-resolver": ["@aws-sdk/region-config-resolver@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/types": "^4.2.0", "@smithy/util-config-provider": "^4.0.0", "@smithy/util-middleware": "^4.0.2", "tslib": "^2.6.2" } }, "sha512-40iH3LJjrQS3LKUJAl7Wj0bln7RFPEvUYKFxtP8a+oKFDO0F65F52xZxIJbPn6sHkxWDAnZlGgdjZXM3p2g5wQ=="], + + "@aws-sdk/client-sts/@aws-sdk/types": ["@aws-sdk/types@3.775.0", "", { "dependencies": { "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-ZoGKwa4C9fC9Av6bdfqcW6Ix5ot05F/S4VxWR2nHuMv7hzfmAjTOcUiWT7UR4hM/U0whf84VhDtXN/DWAk52KA=="], + + "@aws-sdk/client-sts/@aws-sdk/util-endpoints": ["@aws-sdk/util-endpoints@3.782.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/types": "^4.2.0", "@smithy/util-endpoints": "^3.0.2", "tslib": "^2.6.2" } }, "sha512-/RJOAO7o7HI6lEa4ASbFFLHGU9iPK876BhsVfnl54MvApPVYWQ9sHO0anOUim2S5lQTwd/6ghuH3rFYSq/+rdw=="], + + "@aws-sdk/client-sts/@aws-sdk/util-user-agent-browser": ["@aws-sdk/util-user-agent-browser@3.775.0", "", { "dependencies": { "@aws-sdk/types": "3.775.0", "@smithy/types": "^4.2.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "sha512-txw2wkiJmZKVdDbscK7VBK+u+TJnRtlUjRTLei+elZg2ADhpQxfVAQl436FUeIv6AhB/oRHW6/K/EAGXUSWi0A=="], + + "@aws-sdk/client-sts/@aws-sdk/util-user-agent-node": ["@aws-sdk/util-user-agent-node@3.782.0", "", { "dependencies": { "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/node-config-provider": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" }, "peerDependencies": { "aws-crt": ">=1.0.0" }, "optionalPeers": ["aws-crt"] }, "sha512-dMFkUBgh2Bxuw8fYZQoH/u3H4afQ12VSkzEi//qFiDTwbKYq+u+RYjc8GLDM6JSK1BShMu5AVR7HD4ap1TYUnA=="], + + "@aws-sdk/xml-builder/fast-xml-parser": ["fast-xml-parser@5.2.5", "", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ=="], + "@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], @@ -3662,7 +3778,7 @@ "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], - "@expressive-code/plugin-shiki/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="], + "@expressive-code/plugin-shiki/shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], "@hono/zod-validator/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -3720,7 +3836,7 @@ "@modelcontextprotocol/sdk/express": ["express@5.1.0", "", { "dependencies": { "accepts": "^2.0.0", "body-parser": "^2.2.0", "content-disposition": "^1.0.0", "content-type": "^1.0.5", "cookie": "^0.7.1", "cookie-signature": "^1.2.1", "debug": "^4.4.0", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "finalhandler": "^2.1.0", "fresh": "^2.0.0", "http-errors": "^2.0.0", "merge-descriptors": "^2.0.0", "mime-types": "^3.0.0", "on-finished": "^2.4.1", "once": "^1.4.0", "parseurl": "^1.3.3", "proxy-addr": "^2.0.7", "qs": "^6.14.0", "range-parser": "^1.2.1", "router": "^2.2.0", "send": "^1.1.0", "serve-static": "^2.2.0", "statuses": "^2.0.1", "type-is": "^2.0.1", "vary": "^1.1.2" } }, "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA=="], - "@modelcontextprotocol/sdk/raw-body": ["raw-body@3.0.1", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.7.0", "unpipe": "1.0.0" } }, "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA=="], + "@modelcontextprotocol/sdk/raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], "@modelcontextprotocol/sdk/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -3752,12 +3868,8 @@ "@openauthjs/openauth/jose": ["jose@5.9.6", "", {}, "sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ=="], - "@opencode-ai/desktop/@solidjs/router": ["@solidjs/router@0.15.3", "", { "peerDependencies": { "solid-js": "^1.8.6" } }, "sha512-iEbW8UKok2Oio7o6Y4VTzLj+KFCmQPGEpm1fS3xixwFBdclFVBvaQVeibl1jys4cujfAK5Kn6+uG2uBm3lxOMw=="], - "@opencode-ai/web/@shikijs/transformers": ["@shikijs/transformers@3.4.2", "", { "dependencies": { "@shikijs/core": "3.4.2", "@shikijs/types": "3.4.2" } }, "sha512-I5baLVi/ynLEOZoWSAMlACHNnG+yw5HDmse0oe+GW6U1u+ULdEB3UHiVWaHoJSSONV7tlcVxuaMy74sREDkSvg=="], - "@opencode-ai/web/@types/luxon": ["@types/luxon@3.6.2", "", {}, "sha512-R/BdP7OxEMc44l2Ex5lSXHoIXTB2JLNa3y2QISIbr58U/YcsffyQrYW//hZSdrfxrjRZj3GcUoxMPGdO8gSYuw=="], - "@opencode-ai/web/marked": ["marked@15.0.12", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA=="], "@opencode-ai/web/shiki": ["shiki@3.4.2", "", { "dependencies": { "@shikijs/core": "3.4.2", "@shikijs/engine-javascript": "3.4.2", "@shikijs/engine-oniguruma": "3.4.2", "@shikijs/langs": "3.4.2", "@shikijs/themes": "3.4.2", "@shikijs/types": "3.4.2", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-wuxzZzQG8kvZndD7nustrNFIKYJ1jJoWIPaBpVe2+KHSvtzMi4SBjOxrigs8qeqce/l3U0cwiC+VAkLKSunHQQ=="], @@ -3774,11 +3886,11 @@ "@parcel/watcher-wasm/napi-wasm": ["napi-wasm@1.1.3", "", { "bundled": true }, "sha512-h/4nMGsHjZDCYmQVNODIrYACVJ+I9KItbG+0si6W/jSjdA9JbWDoU4LLeMXVcEQGHjttI2tuXqDrbGF7qkUHHg=="], - "@pierre/precision-diffs/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="], + "@pierre/precision-diffs/@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], - "@pierre/precision-diffs/@shikijs/transformers": ["@shikijs/transformers@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/types": "3.14.0" } }, "sha512-i67zQnY9wLMMnKasonVW1L9fKneSLZDj1ePsA4o0AZWU4uUobmJY9baRDa36z+a9/g0aG76/2tybQvm4hrwxIQ=="], + "@pierre/precision-diffs/@shikijs/transformers": ["@shikijs/transformers@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/types": "3.15.0" } }, "sha512-Hmwip5ovvSkg+Kc41JTvSHHVfCYF+C8Cp1omb5AJj4Xvd+y9IXz2rKJwmFRGsuN0vpHxywcXJ1+Y4B9S7EG1/A=="], - "@pierre/precision-diffs/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="], + "@pierre/precision-diffs/shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], "@poppinss/dumper/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], @@ -3808,9 +3920,9 @@ "@tailwindcss/node/jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], - "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="], - "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q=="], + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], @@ -3828,9 +3940,7 @@ "@vercel/nft/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], - "@vercel/nft/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], - - "@vinxi/listhen/h3": ["h3@1.15.4", "", { "dependencies": { "cookie-es": "^1.2.2", "crossws": "^0.3.5", "defu": "^6.1.4", "destr": "^2.0.5", "iron-webcrypto": "^1.2.1", "node-mock-http": "^1.0.2", "radix3": "^1.1.2", "ufo": "^1.6.1", "uncrypto": "^0.1.3" } }, "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ=="], + "@vercel/nft/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], "@vinxi/plugin-directives/magicast": ["magicast@0.2.11", "", { "dependencies": { "@babel/parser": "^7.22.16", "@babel/types": "^7.22.17", "recast": "^0.23.4" } }, "sha512-6saXbRDA1HMkqbsvHOU6HBjCVgZT460qheRkLhJQHWAbhXoWESI3Kn/dGGXyKs15FFKR85jsUqFx2sMK0wy/5g=="], @@ -3844,7 +3954,7 @@ "anymatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], - "archiver-utils/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "archiver-utils/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], "archiver-utils/is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], @@ -3854,7 +3964,7 @@ "astro/sharp": ["sharp@0.33.5", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="], - "astro/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="], + "astro/shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], "astro/vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], @@ -3940,9 +4050,11 @@ "giget/tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], + "glob/minimatch": ["minimatch@10.1.1", "", { "dependencies": { "@isaacs/brace-expansion": "^5.0.0" } }, "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ=="], + "globby/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], - "gray-matter/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], + "gray-matter/js-yaml": ["js-yaml@3.14.2", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="], "h3/cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], @@ -3952,7 +4064,7 @@ "html-minifier-terser/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], - "js-beautify/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "js-beautify/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], "jsonwebtoken/jws": ["jws@3.2.2", "", { "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="], @@ -4080,6 +4192,10 @@ "sitemap/sax": ["sax@1.4.3", "", {}, "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ=="], + "solid-js/seroval": ["seroval@1.3.2", "", {}, "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ=="], + + "solid-js/seroval-plugins": ["seroval-plugins@1.3.3", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w=="], + "source-map-support/source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], "sst/aws4fetch": ["aws4fetch@1.0.18", "", {}, "sha512-3Cf+YaUl07p24MoQ46rFwulAmiyCwH2+1zw1ZyPAX5OtJ34Hh185DwB8y/qRLb6cYYYtSFJ9pthyLc0MD4e8sQ=="], @@ -4096,8 +4212,6 @@ "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], - "sucrase/glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], - "tar/yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], @@ -4176,28 +4290,44 @@ "@actions/github/@octokit/request-error/@octokit/types": ["@octokit/types@13.10.0", "", { "dependencies": { "@octokit/openapi-types": "^24.2.0" } }, "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA=="], - "@astrojs/markdown-remark/shiki/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="], + "@astrojs/markdown-remark/shiki/@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], - "@astrojs/markdown-remark/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="], + "@astrojs/markdown-remark/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], - "@astrojs/markdown-remark/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="], + "@astrojs/markdown-remark/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], - "@astrojs/markdown-remark/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="], + "@astrojs/markdown-remark/shiki/@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], - "@astrojs/markdown-remark/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="], + "@astrojs/markdown-remark/shiki/@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], - "@astrojs/markdown-remark/shiki/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "@astrojs/markdown-remark/shiki/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], - "@astrojs/mdx/@astrojs/markdown-remark/@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.7.4", "", {}, "sha512-lDA9MqE8WGi7T/t2BMi+EAXhs4Vcvr94Gqx3q15cFEz8oFZMO4/SFBqYr/UcmNlvW+35alowkVj+w9VhLvs5Cw=="], + "@astrojs/mdx/@astrojs/markdown-remark/@astrojs/internal-helpers": ["@astrojs/internal-helpers@0.7.5", "", {}, "sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA=="], "@astrojs/mdx/@astrojs/markdown-remark/@astrojs/prism": ["@astrojs/prism@3.3.0", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki": ["shiki@3.14.0", "", { "dependencies": { "@shikijs/core": "3.14.0", "@shikijs/engine-javascript": "3.14.0", "@shikijs/engine-oniguruma": "3.14.0", "@shikijs/langs": "3.14.0", "@shikijs/themes": "3.14.0", "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-J0yvpLI7LSig3Z3acIuDLouV5UCKQqu8qOArwMx+/yPVC3WRMgrP67beaG8F+j4xfEWE0eVC4GeBCIXeOPra1g=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki": ["shiki@3.15.0", "", { "dependencies": { "@shikijs/core": "3.15.0", "@shikijs/engine-javascript": "3.15.0", "@shikijs/engine-oniguruma": "3.15.0", "@shikijs/langs": "3.15.0", "@shikijs/themes": "3.15.0", "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-kLdkY6iV3dYbtPwS9KXU7mjfmDm25f5m0IPNFnaXO7TBPcvbUOY72PYXSuSqDzwp+vlH/d7MXpHlKO/x+QoLXw=="], + + "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], "@aws-crypto/util/@smithy/util-utf8/@smithy/util-buffer-from": ["@smithy/util-buffer-from@2.2.0", "", { "dependencies": { "@smithy/is-array-buffer": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA=="], + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-env": ["@aws-sdk/credential-provider-env@3.775.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-6ESVxwCbGm7WZ17kY1fjmxQud43vzJFoLd4bmlR+idQSWdqlzGDYdcfzpjDKTcivdtNrVYmFvcH1JBUwCRAZhw=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-http": ["@aws-sdk/credential-provider-http@3.775.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/property-provider": "^4.0.2", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/util-stream": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-PjDQeDH/J1S0yWV32wCj2k5liRo0ssXMseCBEkCsD3SqsU8o5cU82b0hMX4sAib/RkglCSZqGO0xMiN0/7ndww=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini": ["@aws-sdk/credential-provider-ini@3.782.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/credential-provider-env": "3.775.0", "@aws-sdk/credential-provider-http": "3.775.0", "@aws-sdk/credential-provider-process": "3.775.0", "@aws-sdk/credential-provider-sso": "3.782.0", "@aws-sdk/credential-provider-web-identity": "3.782.0", "@aws-sdk/nested-clients": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/credential-provider-imds": "^4.0.2", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-wd4KdRy2YjLsE4Y7pz00470Iip06GlRHkG4dyLW7/hFMzEO2o7ixswCWp6J2VGZVAX64acknlv2Q0z02ebjmhw=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-process": ["@aws-sdk/credential-provider-process@3.775.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-A6k68H9rQp+2+7P7SGO90Csw6nrUEm0Qfjpn9Etc4EboZhhCLs9b66umUsTsSBHus4FDIe5JQxfCUyt1wgNogg=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso": ["@aws-sdk/credential-provider-sso@3.782.0", "", { "dependencies": { "@aws-sdk/client-sso": "3.782.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/token-providers": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-1y1ucxTtTIGDSNSNxriQY8msinilhe9gGvQpUDYW9gboyC7WQJPDw66imy258V6osdtdi+xoHzVCbCz3WhosMQ=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity": ["@aws-sdk/credential-provider-web-identity@3.782.0", "", { "dependencies": { "@aws-sdk/core": "3.775.0", "@aws-sdk/nested-clients": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-xCna0opVPaueEbJoclj5C6OpDNi0Gynj+4d7tnuXGgQhTHPyAz8ZyClkVqpi5qvHTgxROdUEDxWqEO5jqRHZHQ=="], + + "@aws-sdk/xml-builder/fast-xml-parser/strnum": ["strnum@2.1.1", "", {}, "sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw=="], + "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], "@cloudflare/unenv-preset/unenv/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], @@ -4246,17 +4376,17 @@ "@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], - "@expressive-code/plugin-shiki/shiki/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="], + "@expressive-code/plugin-shiki/shiki/@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], - "@expressive-code/plugin-shiki/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="], + "@expressive-code/plugin-shiki/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], - "@expressive-code/plugin-shiki/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="], + "@expressive-code/plugin-shiki/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], - "@expressive-code/plugin-shiki/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="], + "@expressive-code/plugin-shiki/shiki/@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], - "@expressive-code/plugin-shiki/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="], + "@expressive-code/plugin-shiki/shiki/@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], - "@expressive-code/plugin-shiki/shiki/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "@expressive-code/plugin-shiki/shiki/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], @@ -4324,7 +4454,7 @@ "@modelcontextprotocol/sdk/express/body-parser": ["body-parser@2.2.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.0", "http-errors": "^2.0.0", "iconv-lite": "^0.6.3", "on-finished": "^2.4.1", "qs": "^6.14.0", "raw-body": "^3.0.0", "type-is": "^2.0.0" } }, "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg=="], - "@modelcontextprotocol/sdk/express/content-disposition": ["content-disposition@1.0.0", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg=="], + "@modelcontextprotocol/sdk/express/content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="], "@modelcontextprotocol/sdk/express/cookie": ["cookie@0.7.1", "", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], @@ -4342,6 +4472,8 @@ "@modelcontextprotocol/sdk/express/type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="], + "@modelcontextprotocol/sdk/raw-body/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "@octokit/auth-oauth-app/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@27.0.0", "", {}, "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA=="], "@octokit/auth-oauth-device/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@27.0.0", "", {}, "sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA=="], @@ -4382,19 +4514,19 @@ "@opentui/solid/@babel/core/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@pierre/precision-diffs/@shikijs/core/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "@pierre/precision-diffs/@shikijs/core/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], - "@pierre/precision-diffs/@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "@pierre/precision-diffs/@shikijs/transformers/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], - "@pierre/precision-diffs/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="], + "@pierre/precision-diffs/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], - "@pierre/precision-diffs/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="], + "@pierre/precision-diffs/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], - "@pierre/precision-diffs/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="], + "@pierre/precision-diffs/shiki/@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], - "@pierre/precision-diffs/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="], + "@pierre/precision-diffs/shiki/@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], - "@pierre/precision-diffs/shiki/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "@pierre/precision-diffs/shiki/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], "@slack/web-api/form-data/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], @@ -4422,8 +4554,6 @@ "@vercel/nft/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - "@vinxi/listhen/h3/cookie-es": ["cookie-es@1.2.2", "", {}, "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg=="], - "accepts/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "ansi-align/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -4438,17 +4568,17 @@ "astro/sharp/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "astro/shiki/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="], + "astro/shiki/@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], - "astro/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="], + "astro/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], - "astro/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="], + "astro/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], - "astro/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="], + "astro/shiki/@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], - "astro/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="], + "astro/shiki/@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], - "astro/shiki/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "astro/shiki/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], "babel-plugin-module-resolver/glob/minimatch": ["minimatch@8.0.4", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA=="], @@ -4564,7 +4694,7 @@ "opencontrol/@modelcontextprotocol/sdk/pkce-challenge": ["pkce-challenge@4.1.0", "", {}, "sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ=="], - "opencontrol/@modelcontextprotocol/sdk/raw-body": ["raw-body@3.0.1", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.7.0", "unpipe": "1.0.0" } }, "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA=="], + "opencontrol/@modelcontextprotocol/sdk/raw-body": ["raw-body@3.0.2", "", { "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", "iconv-lite": "~0.7.0", "unpipe": "~1.0.0" } }, "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="], "opencontrol/@modelcontextprotocol/sdk/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -4594,12 +4724,6 @@ "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], - "sucrase/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], - - "sucrase/glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], - - "sucrase/glob/path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], - "tw-to-css/tailwindcss/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], "tw-to-css/tailwindcss/object-hash": ["object-hash@3.0.0", "", {}, "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="], @@ -4676,22 +4800,32 @@ "@actions/github/@octokit/request/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@24.2.0", "", {}, "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/core": ["@shikijs/core@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-qRSeuP5vlYHCNUIrpEBQFO7vSkR7jn7Kv+5X3FO/zBKVDGQbcnlScD3XhkrHi/R8Ltz0kEjvFR9Szp/XMRbFMw=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/core": ["@shikijs/core@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-8TOG6yG557q+fMsSVa8nkEDOZNTSxjbbR8l6lF2gyr6Np+jrPlslqDxQkN6rMXCECQ3isNPZAGszAfYoJOPGlg=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-3v1kAXI2TsWQuwv86cREH/+FK9Pjw3dorVEykzQDhwrZj0lwsHYlfyARaKmn6vr5Gasf8aeVpb8JkzeWspxOLQ=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.3" } }, "sha512-ZedbOFpopibdLmvTz2sJPJgns8Xvyabe2QbmqMTz07kt1pTzfEvKZc5IqPVO/XFiEbbNyaOpjPBkkr1vlwS+qg=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-TNcYTYMbJyy+ZjzWtt0bG5y4YyMIWC2nyePz+CFMWqm+HnZZyy9SWMgo8Z6KBJVIZnx8XUXS8U2afO6Y0g1Oug=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-HnqFsV11skAHvOArMZdLBZZApRSYS4LSztk2K3016Y9VCyZISnlYUYsL2hzlS7tPqKHvNqmI5JSUJZprXloMvA=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/langs": ["@shikijs/langs@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-DIB2EQY7yPX1/ZH7lMcwrK5pl+ZkP/xoSpUzg9YC8R+evRCCiSQ7yyrvEyBsMnfZq4eBzLzBlugMyTAf13+pzg=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/langs": ["@shikijs/langs@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-WpRvEFvkVvO65uKYW4Rzxs+IG0gToyM8SARQMtGGsH4GDMNZrr60qdggXrFOsdfOVssG/QQGEl3FnJ3EZ+8w8A=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/themes": ["@shikijs/themes@3.14.0", "", { "dependencies": { "@shikijs/types": "3.14.0" } }, "sha512-fAo/OnfWckNmv4uBoUu6dSlkcBc+SA1xzj5oUSaz5z3KqHtEbUypg/9xxgJARtM6+7RVm0Q6Xnty41xA1ma1IA=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/themes": ["@shikijs/themes@3.15.0", "", { "dependencies": { "@shikijs/types": "3.15.0" } }, "sha512-8ow2zWb1IDvCKjYb0KiLNrK4offFdkfNVPXb1OZykpLCzRU6j+efkY+Y7VQjNlNFXonSw+4AOdGYtmqykDbRiQ=="], - "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/types": ["@shikijs/types@3.14.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-bQGgC6vrY8U/9ObG1Z/vTro+uclbjjD/uG58RvfxKZVD5p9Yc1ka3tVyEFy7BNJLzxuWyHH5NWynP9zZZS59eQ=="], + "@astrojs/mdx/@astrojs/markdown-remark/shiki/@shikijs/types": ["@shikijs/types@3.15.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-BnP+y/EQnhihgHy4oIAN+6FFtmfTekwOLsQbRw9hOKwqgNy8Bdsjq8B05oAt/ZgvIWWFrshV71ytOrlPfYjIJw=="], + + "@aws-crypto/sha1-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], "@aws-crypto/sha256-browser/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], "@aws-crypto/util/@smithy/util-utf8/@smithy/util-buffer-from/@smithy/is-array-buffer": ["@smithy/is-array-buffer@2.2.0", "", { "dependencies": { "tslib": "^2.6.2" } }, "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA=="], + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-ini/@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-QOYC8q7luzHFXrP0xYAqBctoPkynjfV0r9dqntFu4/IWMTyC1vlo1UTxFAjIPyclYw92XJyEkVCVg9v/nQnsUA=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/client-sso": ["@aws-sdk/client-sso@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-5GlJBejo8wqMpSSEKb45WE82YxI2k73YuebjLH/eWDNQeE6VI5Bh9lA1YQ7xNkLLH8hIsb0pSfKVuwh0VEzVrg=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/token-providers": ["@aws-sdk/token-providers@3.782.0", "", { "dependencies": { "@aws-sdk/nested-clients": "3.782.0", "@aws-sdk/types": "3.775.0", "@smithy/property-provider": "^4.0.2", "@smithy/shared-ini-file-loader": "^4.0.2", "@smithy/types": "^4.2.0", "tslib": "^2.6.2" } }, "sha512-4tPuk/3+THPrzKaXW4jE2R67UyGwHLFizZ47pcjJWbhb78IIJAy94vbeqEQ+veS84KF5TXcU7g5jGTXC0D70Wg=="], + + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-web-identity/@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-QOYC8q7luzHFXrP0xYAqBctoPkynjfV0r9dqntFu4/IWMTyC1vlo1UTxFAjIPyclYw92XJyEkVCVg9v/nQnsUA=="], + "@jsx-email/cli/tailwindcss/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "@jsx-email/cli/tailwindcss/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], @@ -4742,10 +4876,16 @@ "@modelcontextprotocol/sdk/express/accepts/negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + "@modelcontextprotocol/sdk/express/body-parser/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "@modelcontextprotocol/sdk/express/body-parser/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "@modelcontextprotocol/sdk/express/send/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "@modelcontextprotocol/sdk/express/type-is/media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="], + "@modelcontextprotocol/sdk/raw-body/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + "@slack/web-api/form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@2.3.0", "", { "dependencies": { "emoji-regex-xs": "^1.0.0", "regex": "^5.1.1", "regex-recursion": "^5.1.1" } }, "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g=="], @@ -4770,11 +4910,13 @@ "nitropack/serve-static/send/fresh": ["fresh@2.0.0", "", {}, "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="], + "nitropack/serve-static/send/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "opencontrol/@modelcontextprotocol/sdk/express/accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], "opencontrol/@modelcontextprotocol/sdk/express/body-parser": ["body-parser@2.2.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.0", "http-errors": "^2.0.0", "iconv-lite": "^0.6.3", "on-finished": "^2.4.1", "qs": "^6.14.0", "raw-body": "^3.0.0", "type-is": "^2.0.0" } }, "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg=="], - "opencontrol/@modelcontextprotocol/sdk/express/content-disposition": ["content-disposition@1.0.0", "", { "dependencies": { "safe-buffer": "5.2.1" } }, "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg=="], + "opencontrol/@modelcontextprotocol/sdk/express/content-disposition": ["content-disposition@1.0.1", "", {}, "sha512-oIXISMynqSqm241k6kcQ5UwttDILMK4BiurCfGEREw6+X9jkkpEe5T9FZaApyLGGOnFuyMWZpdolTXMtvEJ08Q=="], "opencontrol/@modelcontextprotocol/sdk/express/cookie": ["cookie@0.7.1", "", {}, "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w=="], @@ -4792,6 +4934,8 @@ "opencontrol/@modelcontextprotocol/sdk/express/type-is": ["type-is@2.0.1", "", { "dependencies": { "content-type": "^1.0.5", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="], + "opencontrol/@modelcontextprotocol/sdk/raw-body/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "pkg-up/find-up/locate-path/p-locate": ["p-locate@3.0.0", "", { "dependencies": { "p-limit": "^2.0.0" } }, "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="], "pkg-up/find-up/locate-path/path-exists": ["path-exists@3.0.0", "", {}, "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="], @@ -4806,26 +4950,38 @@ "rollup-plugin-visualizer/yargs/string-width/strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], - "sucrase/glob/path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], - "tw-to-css/tailwindcss/chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "tw-to-css/tailwindcss/chokidar/readdirp": ["readdirp@3.6.0", "", { "dependencies": { "picomatch": "^2.2.1" } }, "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA=="], + "@aws-sdk/client-sts/@aws-sdk/credential-provider-node/@aws-sdk/credential-provider-sso/@aws-sdk/token-providers/@aws-sdk/nested-clients": ["@aws-sdk/nested-clients@3.782.0", "", { "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", "@aws-sdk/core": "3.775.0", "@aws-sdk/middleware-host-header": "3.775.0", "@aws-sdk/middleware-logger": "3.775.0", "@aws-sdk/middleware-recursion-detection": "3.775.0", "@aws-sdk/middleware-user-agent": "3.782.0", "@aws-sdk/region-config-resolver": "3.775.0", "@aws-sdk/types": "3.775.0", "@aws-sdk/util-endpoints": "3.782.0", "@aws-sdk/util-user-agent-browser": "3.775.0", "@aws-sdk/util-user-agent-node": "3.782.0", "@smithy/config-resolver": "^4.1.0", "@smithy/core": "^3.2.0", "@smithy/fetch-http-handler": "^5.0.2", "@smithy/hash-node": "^4.0.2", "@smithy/invalid-dependency": "^4.0.2", "@smithy/middleware-content-length": "^4.0.2", "@smithy/middleware-endpoint": "^4.1.0", "@smithy/middleware-retry": "^4.1.0", "@smithy/middleware-serde": "^4.0.3", "@smithy/middleware-stack": "^4.0.2", "@smithy/node-config-provider": "^4.0.2", "@smithy/node-http-handler": "^4.0.4", "@smithy/protocol-http": "^5.1.0", "@smithy/smithy-client": "^4.2.0", "@smithy/types": "^4.2.0", "@smithy/url-parser": "^4.0.2", "@smithy/util-base64": "^4.0.0", "@smithy/util-body-length-browser": "^4.0.0", "@smithy/util-body-length-node": "^4.0.0", "@smithy/util-defaults-mode-browser": "^4.0.8", "@smithy/util-defaults-mode-node": "^4.0.8", "@smithy/util-endpoints": "^3.0.2", "@smithy/util-middleware": "^4.0.2", "@smithy/util-retry": "^4.0.2", "@smithy/util-utf8": "^4.0.0", "tslib": "^2.6.2" } }, "sha512-QOYC8q7luzHFXrP0xYAqBctoPkynjfV0r9dqntFu4/IWMTyC1vlo1UTxFAjIPyclYw92XJyEkVCVg9v/nQnsUA=="], + "@jsx-email/cli/tailwindcss/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + "@modelcontextprotocol/sdk/express/body-parser/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + + "@modelcontextprotocol/sdk/express/send/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex": ["regex@5.1.1", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw=="], "@solidjs/start/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex-recursion": ["regex-recursion@5.1.1", "", { "dependencies": { "regex": "^5.1.1", "regex-utilities": "^2.3.0" } }, "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w=="], "nitropack/c12/giget/nypm/tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], + "nitropack/serve-static/send/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + "opencontrol/@modelcontextprotocol/sdk/express/accepts/negotiator": ["negotiator@1.0.0", "", {}, "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="], + "opencontrol/@modelcontextprotocol/sdk/express/body-parser/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "opencontrol/@modelcontextprotocol/sdk/express/body-parser/iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "opencontrol/@modelcontextprotocol/sdk/express/send/http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="], + "opencontrol/@modelcontextprotocol/sdk/express/type-is/media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="], + "opencontrol/@modelcontextprotocol/sdk/raw-body/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + "pkg-up/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], "rollup-plugin-visualizer/yargs/cliui/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], @@ -4833,5 +4989,9 @@ "rollup-plugin-visualizer/yargs/string-width/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], "tw-to-css/tailwindcss/chokidar/readdirp/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="], + + "opencontrol/@modelcontextprotocol/sdk/express/body-parser/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], + + "opencontrol/@modelcontextprotocol/sdk/express/send/http-errors/statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], } } diff --git a/nix/hashes.json b/nix/hashes.json index 1a68f55aef..dc463287a6 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,3 +1,3 @@ { - "nodeModules": "sha256-bPiUpHGtgwVxHQHXBprpc6fFeJqW6/x7dwtQZBq29oU=" + "nodeModules": "sha256-LOB0tUZGbysz9FGMiBn0u60UicBr8AE+xauwlYlxkD0=" } diff --git a/package.json b/package.json index fd7cf9e25f..f9d961a792 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "dev": "bun run --cwd packages/opencode --conditions=browser src/index.ts", "typecheck": "bun turbo typecheck", "prepare": "husky", - "random": "echo 'Random script'" + "random": "echo 'Random script'", + "hello": "echo 'Hello World!'" }, "workspaces": { "packages": [ @@ -23,29 +24,33 @@ "@hono/zod-validator": "0.4.2", "ulid": "3.0.1", "@kobalte/core": "0.13.11", + "@types/luxon": "3.7.1", "@types/node": "22.13.9", "@tsconfig/node22": "22.0.2", "@tsconfig/bun": "1.0.9", "@cloudflare/workers-types": "4.20251008.0", "@openauthjs/openauth": "0.0.0-20250322224806", - "@pierre/precision-diffs": "0.4.4", - "@solidjs/meta": "0.29.4", + "@pierre/precision-diffs": "0.5.4", "@tailwindcss/vite": "4.1.11", "diff": "8.0.2", "ai": "5.0.97", "hono": "4.7.10", + "hono-openapi": "1.1.1", "fuzzysort": "3.1.0", "luxon": "3.6.1", "typescript": "5.8.2", "@typescript/native-preview": "7.0.0-dev.20251014.1", "zod": "4.1.8", "remeda": "2.26.0", - "solid-js": "1.9.9", "solid-list": "0.3.0", "tailwindcss": "4.1.11", "virtua": "0.42.3", "vite": "7.1.4", - "vite-plugin-solid": "2.11.8" + "@solidjs/meta": "0.29.4", + "@solidjs/router": "0.15.4", + "@solidjs/start": "1.2.0", + "solid-js": "1.9.10", + "vite-plugin-solid": "2.11.10" } }, "devDependencies": { @@ -56,6 +61,7 @@ "turbo": "2.5.6" }, "dependencies": { + "@aws-sdk/client-s3": "3.933.0", "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*" }, diff --git a/packages/console/app/package.json b/packages/console/app/package.json index cac3d4f93d..919133881b 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,13 +1,13 @@ { "name": "@opencode-ai/console-app", + "version": "1.0.90", "type": "module", "scripts": { "typecheck": "tsgo --noEmit", "dev": "vinxi dev --host 0.0.0.0", "dev:remote": "VITE_AUTH_URL=https://auth.dev.opencode.ai bun sst shell --stage=dev bun dev", "build": "./script/generate-sitemap.ts && vinxi build && ../../opencode/script/schema.ts ./.output/public/config.json", - "start": "vinxi start", - "version": "1.0.90" + "start": "vinxi start" }, "dependencies": { "@ibm/plex": "6.4.1", @@ -17,9 +17,9 @@ "@opencode-ai/console-core": "workspace:*", "@opencode-ai/console-mail": "workspace:*", "@opencode-ai/console-resource": "workspace:*", - "@solidjs/meta": "^0.29.4", - "@solidjs/router": "^0.15.0", - "@solidjs/start": "^1.1.0", + "@solidjs/meta": "catalog:", + "@solidjs/router": "catalog:", + "@solidjs/start": "catalog:", "chart.js": "4.5.1", "solid-js": "catalog:", "vinxi": "^0.5.7", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index d6736b6ae1..af75c57de0 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -14,7 +14,7 @@ "devDependencies": { "@tailwindcss/vite": "catalog:", "@tsconfig/bun": "1.0.9", - "@types/luxon": "3.7.1", + "@types/luxon": "catalog:", "@types/node": "catalog:", "@typescript/native-preview": "catalog:", "typescript": "catalog:", @@ -26,6 +26,7 @@ "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", "@opencode-ai/ui": "workspace:*", + "@opencode-ai/util": "workspace:*", "@shikijs/transformers": "3.9.2", "@solid-primitives/active-element": "2.1.3", "@solid-primitives/event-bus": "1.1.2", @@ -33,7 +34,7 @@ "@solid-primitives/scroll": "2.1.3", "@solid-primitives/storage": "4.3.3", "@solidjs/meta": "catalog:", - "@solidjs/router": "0.15.3", + "@solidjs/router": "catalog:", "@thisbeyond/solid-dnd": "0.7.5", "diff": "catalog:", "fuzzysort": "catalog:", diff --git a/packages/desktop/src/components/file-tree.tsx b/packages/desktop/src/components/file-tree.tsx index 1347ecae6e..f3729a8d3a 100644 --- a/packages/desktop/src/components/file-tree.tsx +++ b/packages/desktop/src/components/file-tree.tsx @@ -1,6 +1,7 @@ import { useLocal, type LocalFile } from "@/context/local" -import { Tooltip } from "@opencode-ai/ui" -import { Collapsible, FileIcon } from "@/ui" +import { Collapsible } from "@/ui" +import { FileIcon } from "@opencode-ai/ui/file-icon" +import { Tooltip } from "@opencode-ai/ui/tooltip" import { For, Match, Switch, Show, type ComponentProps, type ParentProps } from "solid-js" import { Dynamic } from "solid-js/web" diff --git a/packages/desktop/src/components/prompt-input.tsx b/packages/desktop/src/components/prompt-input.tsx index b2e552f71a..94d8ff8827 100644 --- a/packages/desktop/src/components/prompt-input.tsx +++ b/packages/desktop/src/components/prompt-input.tsx @@ -1,8 +1,6 @@ -import { Button, Icon, IconButton, Select, SelectDialog, Tooltip } from "@opencode-ai/ui" import { useFilteredList } from "@opencode-ai/ui/hooks" import { createEffect, on, Component, Show, For, onMount, onCleanup, Switch, Match } from "solid-js" import { createStore } from "solid-js/store" -import { FileIcon } from "@/ui" import { getDirectory, getFilename } from "@/utils" import { createFocusSignal } from "@solid-primitives/active-element" import { useLocal } from "@/context/local" @@ -11,6 +9,13 @@ import { ContentPart, DEFAULT_PROMPT, isPromptEqual, Prompt, useSession } from " import { useSDK } from "@/context/sdk" import { useNavigate } from "@solidjs/router" import { useSync } from "@/context/sync" +import { FileIcon } from "@opencode-ai/ui/file-icon" +import { SelectDialog } from "@opencode-ai/ui/select-dialog" +import { Button } from "@opencode-ai/ui/button" +import { Icon } from "@opencode-ai/ui/icon" +import { Tooltip } from "@opencode-ai/ui/tooltip" +import { IconButton } from "@opencode-ai/ui/icon-button" +import { Select } from "@opencode-ai/ui/select" interface PromptInputProps { class?: string @@ -184,8 +189,8 @@ export const PromptInput: Component = (props) => { const range = selection.getRangeAt(0) if (atMatch) { - let node: Node | null = range.startContainer - let offset = range.startOffset + // let node: Node | null = range.startContainer + // let offset = range.startOffset let runningLength = 0 const walker = document.createTreeWalker(editorRef, NodeFilter.SHOW_TEXT, null) @@ -448,7 +453,7 @@ export const PromptInput: Component = (props) => { {(i) => (
- +
{i.name} diff --git a/packages/desktop/src/components/session-review.tsx b/packages/desktop/src/components/session-review.tsx deleted file mode 100644 index 6022164c54..0000000000 --- a/packages/desktop/src/components/session-review.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { useSession } from "@/context/session" -import { FileIcon } from "@/ui" -import { getDirectory, getFilename } from "@/utils" -import { Accordion, Button, Diff, DiffChanges, Icon, IconButton, Tooltip } from "@opencode-ai/ui" -import { For, Match, Show, Switch } from "solid-js" -import { StickyAccordionHeader } from "./sticky-accordion-header" -import { createStore } from "solid-js/store" -import { useLayout } from "@/context/layout" - -export const SessionReview = (props: { split?: boolean; class?: string; hideExpand?: boolean }) => { - const layout = useLayout() - const session = useSession() - const [store, setStore] = createStore({ - open: session.diffs().map((d) => d.file), - }) - - const handleChange = (open: string[]) => { - setStore("open", open) - } - - const handleExpandOrCollapseAll = () => { - if (store.open.length > 0) { - setStore("open", []) - } else { - setStore( - "open", - session.diffs().map((d) => d.file), - ) - } - } - - return ( -
-
-
Session changes
-
- - - - { - layout.review.tab() - session.layout.setActiveTab("review") - }} - /> - - -
-
- - - {(diff) => ( - - - -
-
- -
- - {getDirectory(diff.file)}‎ - - {getFilename(diff.file)} -
-
-
- - -
-
-
-
- - - -
- )} -
-
-
- ) -} diff --git a/packages/desktop/src/components/sticky-accordion-header.tsx b/packages/desktop/src/components/sticky-accordion-header.tsx deleted file mode 100644 index cb3f0d5ebe..0000000000 --- a/packages/desktop/src/components/sticky-accordion-header.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { Accordion } from "@opencode-ai/ui" -import { ParentProps } from "solid-js" - -export function StickyAccordionHeader(props: ParentProps<{ class?: string }>) { - return ( - - {props.children} - - ) -} diff --git a/packages/desktop/src/context/global-sdk.tsx b/packages/desktop/src/context/global-sdk.tsx index fc4862ec8e..b9c72afcba 100644 --- a/packages/desktop/src/context/global-sdk.tsx +++ b/packages/desktop/src/context/global-sdk.tsx @@ -1,5 +1,5 @@ import { createOpencodeClient, type Event } from "@opencode-ai/sdk/client" -import { createSimpleContext } from "./helper" +import { createSimpleContext } from "@opencode-ai/ui/context" import { createGlobalEmitter } from "@solid-primitives/event-bus" import { onCleanup } from "solid-js" diff --git a/packages/desktop/src/context/global-sync.tsx b/packages/desktop/src/context/global-sync.tsx index 785a399287..a8a6b9937d 100644 --- a/packages/desktop/src/context/global-sync.tsx +++ b/packages/desktop/src/context/global-sync.tsx @@ -14,8 +14,8 @@ import type { SessionStatus, } from "@opencode-ai/sdk" import { createStore, produce, reconcile } from "solid-js/store" -import { Binary } from "@/utils/binary" -import { createSimpleContext } from "./helper" +import { Binary } from "@opencode-ai/util/binary" +import { createSimpleContext } from "@opencode-ai/ui/context" import { useGlobalSDK } from "./global-sdk" type State = { diff --git a/packages/desktop/src/context/helper.tsx b/packages/desktop/src/context/helper.tsx deleted file mode 100644 index 6be88e775b..0000000000 --- a/packages/desktop/src/context/helper.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { createContext, Show, useContext, type ParentProps } from "solid-js" - -export function createSimpleContext>(input: { - name: string - init: ((input: Props) => T) | (() => T) -}) { - const ctx = createContext() - - return { - provider: (props: ParentProps) => { - const init = input.init(props) - return ( - // @ts-expect-error - - {props.children} - - ) - }, - use() { - const value = useContext(ctx) - if (!value) throw new Error(`${input.name} context must be used within a context provider`) - return value - }, - } -} diff --git a/packages/desktop/src/context/layout.tsx b/packages/desktop/src/context/layout.tsx index d6edd84d19..81e8b537ab 100644 --- a/packages/desktop/src/context/layout.tsx +++ b/packages/desktop/src/context/layout.tsx @@ -1,6 +1,6 @@ import { createStore } from "solid-js/store" import { createMemo } from "solid-js" -import { createSimpleContext } from "./helper" +import { createSimpleContext } from "@opencode-ai/ui/context" import { makePersisted } from "@solid-primitives/storage" import { useGlobalSync } from "./global-sync" diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx index 4b7ad7cc24..68da03438b 100644 --- a/packages/desktop/src/context/local.tsx +++ b/packages/desktop/src/context/local.tsx @@ -2,7 +2,7 @@ import { createStore, produce, reconcile } from "solid-js/store" import { batch, createEffect, createMemo } from "solid-js" import { uniqueBy } from "remeda" import type { FileContent, FileNode, Model, Provider, File as FileStatus } from "@opencode-ai/sdk" -import { createSimpleContext } from "./helper" +import { createSimpleContext } from "@opencode-ai/ui/context" import { useSDK } from "./sdk" import { useSync } from "./sync" import { base64Encode } from "@/utils" diff --git a/packages/desktop/src/context/sdk.tsx b/packages/desktop/src/context/sdk.tsx index 40165b1ba1..81b32035a0 100644 --- a/packages/desktop/src/context/sdk.tsx +++ b/packages/desktop/src/context/sdk.tsx @@ -1,5 +1,5 @@ import { createOpencodeClient, type Event } from "@opencode-ai/sdk/client" -import { createSimpleContext } from "./helper" +import { createSimpleContext } from "@opencode-ai/ui/context" import { createGlobalEmitter } from "@solid-primitives/event-bus" import { onCleanup } from "solid-js" import { useGlobalSDK } from "./global-sdk" diff --git a/packages/desktop/src/context/session.tsx b/packages/desktop/src/context/session.tsx index 81b9b2d946..e6b6b40dab 100644 --- a/packages/desktop/src/context/session.tsx +++ b/packages/desktop/src/context/session.tsx @@ -1,5 +1,5 @@ import { createStore, produce } from "solid-js/store" -import { createSimpleContext } from "./helper" +import { createSimpleContext } from "@opencode-ai/ui/context" import { batch, createEffect, createMemo } from "solid-js" import { useSync } from "./sync" import { makePersisted } from "@solid-primitives/storage" @@ -60,7 +60,7 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex }) const status = createMemo( () => - sync.data.session_status[params.id] ?? { + sync.data.session_status[params.id ?? ""] ?? { type: "idle", }, ) diff --git a/packages/desktop/src/context/sync.tsx b/packages/desktop/src/context/sync.tsx index 3852a6feb6..38058c3708 100644 --- a/packages/desktop/src/context/sync.tsx +++ b/packages/desktop/src/context/sync.tsx @@ -1,8 +1,8 @@ import type { Part } from "@opencode-ai/sdk" import { produce } from "solid-js/store" import { createMemo } from "solid-js" -import { Binary } from "@/utils/binary" -import { createSimpleContext } from "./helper" +import { Binary } from "@opencode-ai/util/binary" +import { createSimpleContext } from "@opencode-ai/ui/context" import { useGlobalSync } from "./global-sync" import { useSDK } from "./sdk" diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx index f35600895a..43168a021a 100644 --- a/packages/desktop/src/index.tsx +++ b/packages/desktop/src/index.tsx @@ -3,7 +3,8 @@ import "@/index.css" import { render } from "solid-js/web" import { Router, Route, Navigate } from "@solidjs/router" import { MetaProvider } from "@solidjs/meta" -import { Fonts, MarkedProvider } from "@opencode-ai/ui" +import { Fonts } from "@opencode-ai/ui/fonts" +import { MarkedProvider } from "@opencode-ai/ui/context/marked" import { GlobalSyncProvider, useGlobalSync } from "./context/global-sync" import Layout from "@/pages/layout" import DirectoryLayout from "@/pages/directory-layout" diff --git a/packages/desktop/src/pages/directory-layout.tsx b/packages/desktop/src/pages/directory-layout.tsx index 6bd18ec9f2..2fe750fdad 100644 --- a/packages/desktop/src/pages/directory-layout.tsx +++ b/packages/desktop/src/pages/directory-layout.tsx @@ -1,22 +1,31 @@ import { createMemo, type ParentProps } from "solid-js" import { useParams } from "@solidjs/router" import { SDKProvider } from "@/context/sdk" -import { SyncProvider } from "@/context/sync" +import { SyncProvider, useSync } from "@/context/sync" import { LocalProvider } from "@/context/local" import { useGlobalSync } from "@/context/global-sync" import { base64Decode } from "@/utils" +import { DataProvider } from "@opencode-ai/ui/context" +import { iife } from "@opencode-ai/util/iife" export default function Layout(props: ParentProps) { const params = useParams() const sync = useGlobalSync() const directory = createMemo(() => { - const decoded = base64Decode(params.dir) + const decoded = base64Decode(params.dir!) return sync.data.projects.find((x) => x.worktree === decoded)?.worktree ?? "/" }) return ( - {props.children} + {iife(() => { + const sync = useSync() + return ( + + {props.children} + + ) + })} ) diff --git a/packages/desktop/src/pages/home.tsx b/packages/desktop/src/pages/home.tsx index e2f99afa80..e773fff573 100644 --- a/packages/desktop/src/pages/home.tsx +++ b/packages/desktop/src/pages/home.tsx @@ -2,7 +2,7 @@ import { useGlobalSync } from "@/context/global-sync" import { base64Encode, getFilename } from "@/utils" import { For } from "solid-js" import { A } from "@solidjs/router" -import { Button } from "@opencode-ai/ui" +import { Button } from "@opencode-ai/ui/button" export default function Home() { const sync = useGlobalSync() diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx index d882f79058..c9bb559d82 100644 --- a/packages/desktop/src/pages/layout.tsx +++ b/packages/desktop/src/pages/layout.tsx @@ -1,10 +1,16 @@ -import { Button, Tooltip, DiffChanges, IconButton, Mark, Icon, Collapsible } from "@opencode-ai/ui" import { createMemo, For, ParentProps, Show } from "solid-js" import { DateTime } from "luxon" import { A, useParams } from "@solidjs/router" import { useLayout } from "@/context/layout" import { useGlobalSync } from "@/context/global-sync" import { base64Encode, getFilename } from "@/utils" +import { Mark } from "@opencode-ai/ui/logo" +import { Button } from "@opencode-ai/ui/button" +import { Icon } from "@opencode-ai/ui/icon" +import { IconButton } from "@opencode-ai/ui/icon-button" +import { Tooltip } from "@opencode-ai/ui/tooltip" +import { Collapsible } from "@opencode-ai/ui/collapsible" +import { DiffChanges } from "@opencode-ai/ui/diff-changes" export default function Layout(props: ParentProps) { const params = useParams() diff --git a/packages/desktop/src/pages/session.tsx b/packages/desktop/src/pages/session.tsx index 43c7b37364..a889e680ee 100644 --- a/packages/desktop/src/pages/session.tsx +++ b/packages/desktop/src/pages/session.tsx @@ -1,38 +1,20 @@ -import { - SelectDialog, - IconButton, - Tabs, - Icon, - Accordion, - Diff, - Collapsible, - DiffChanges, - Message, - Typewriter, - Card, - Code, - Tooltip, - ProgressCircle, -} from "@opencode-ai/ui" -import { FileIcon } from "@/ui" -import { MessageProgress } from "@/components/message-progress" -import { - For, - onCleanup, - onMount, - Show, - Match, - Switch, - createSignal, - createEffect, - createMemo, - createResource, -} from "solid-js" +import { For, onCleanup, onMount, Show, Match, Switch, createResource } from "solid-js" import { useLocal, type LocalFile } from "@/context/local" import { createStore } from "solid-js/store" import { getDirectory, getFilename } from "@/utils" import { PromptInput } from "@/components/prompt-input" import { DateTime } from "luxon" +import { FileIcon } from "@opencode-ai/ui/file-icon" +import { IconButton } from "@opencode-ai/ui/icon-button" +import { Icon } from "@opencode-ai/ui/icon" +import { Tooltip } from "@opencode-ai/ui/tooltip" +import { DiffChanges } from "@opencode-ai/ui/diff-changes" +import { ProgressCircle } from "@opencode-ai/ui/progress-circle" +import { Tabs } from "@opencode-ai/ui/tabs" +import { Code } from "@opencode-ai/ui/code" +import { SessionTimeline } from "@opencode-ai/ui/session-timeline" +import { SessionReview } from "@opencode-ai/ui/session-review" +import { SelectDialog } from "@opencode-ai/ui/select-dialog" import { DragDropProvider, DragDropSensors, @@ -45,14 +27,8 @@ import { import type { DragEvent, Transformer } from "@thisbeyond/solid-dnd" import type { JSX } from "solid-js" import { useSync } from "@/context/sync" -import { type AssistantMessage as AssistantMessageType } from "@opencode-ai/sdk" -import { Markdown } from "@opencode-ai/ui" -import { Spinner } from "@/components/spinner" import { useSession } from "@/context/session" -import { StickyAccordionHeader } from "@/components/sticky-accordion-header" -import { SessionReview } from "@/components/session-review" import { useLayout } from "@/context/layout" -import { createSessionSeen } from "@/hooks/create-session-seen" export default function Page() { const layout = useLayout() @@ -65,7 +41,6 @@ export default function Page() { activeDraggable: undefined as string | undefined, }) let inputRef!: HTMLDivElement - let messageScrollElement!: HTMLDivElement const MOD = typeof navigator === "object" && /(Mac|iPod|iPhone|iPad)/.test(navigator.platform) ? "Meta" : "Control" @@ -358,284 +333,11 @@ export default function Page() {
-
- 1}> - {(_) => { - const expanded = createMemo(() => layout.review.state() === "tab" || !session.diffs().length) - - return ( -
    - - {(message) => { - const working = createMemo( - () => message.id === session.messages.last()?.id && session.working(), - ) - const handleClick = () => session.messages.setActive(message.id) - - return ( -
  • - - - {message.summary?.title} -
- } - > - - - - - ) - }} - - - ) - }} - -
- - {(message) => { - const isActive = createMemo(() => session.messages.active()?.id === message.id) - const titleSeen = createSessionSeen(`message-title-${message.id}`) - const contentSeen = createSessionSeen(`message-content-${message.id}`) - const [titled, setTitled] = createSignal(titleSeen()) - const assistantMessages = createMemo(() => { - if (!session.id) return [] - return sync.data.message[session.id]?.filter( - (m) => m.role === "assistant" && m.parentID == message.id, - ) as AssistantMessageType[] - }) - const error = createMemo(() => assistantMessages().find((m) => m?.error)?.error) - const [detailsExpanded, setDetailsExpanded] = createSignal(false) - const parts = createMemo(() => sync.data.part[message.id]) - const hasToolPart = createMemo(() => - assistantMessages() - ?.flatMap((m) => sync.data.part[m.id]) - .some((p) => p?.type === "tool"), - ) - const working = createMemo( - () => message.id === session.messages.last()?.id && session.working(), - ) - const initialCompleted = !(message.id === session.messages.last()?.id && session.working()) - const [completed, setCompleted] = createSignal(initialCompleted) - - // allowing time for the animations to finish - createEffect(() => { - if (titleSeen()) return - const title = message.summary?.title - if (title) setTimeout(() => setTitled(true), 10_000) - }) - createEffect(() => { - const completed = !working() - setTimeout(() => setCompleted(completed), 1200) - }) - - return ( - -
- {/* Title */} -
-
- - } - > -

- {message.summary?.title} -

-
-
-
- - {/* Summary */} - -
-
-

- - Summary - Response - -

- - {(summary) => ( - *]:fade-up-text": !message.summary?.diffs?.length && !contentSeen(), - }} - text={summary()} - /> - )} - -
- - - {(diff) => ( - - - -
-
- -
- - - {getDirectory(diff.file)}‎ - - - - {getFilename(diff.file)} - -
-
-
- - -
-
-
-
- - - -
- )} -
-
-
-
- - - {error()?.data?.message as string} - - - {/* Response */} -
- - - - - - - -
-
- - Hide details - Show details - -
- -
-
- -
- - {(assistantMessage) => { - const parts = createMemo(() => sync.data.part[assistantMessage.id]) - return - }} - - - - {error()?.data?.message as string} - - -
-
-
-
-
-
-
-
- ) - }} -
-
-
+
@@ -673,7 +375,21 @@ export default function Page() { "relative grow px-6 py-3 flex-1 min-h-0 border-l border-border-weak-base": true, }} > - + + { + layout.review.tab() + session.layout.setActiveTab("review") + }} + /> + + } + />
@@ -685,7 +401,7 @@ export default function Page() { "relative px-6 py-3 flex-1 min-h-0 overflow-hidden": true, }} > - +
diff --git a/packages/desktop/src/ui/collapsible.tsx b/packages/desktop/src/ui/collapsible.tsx index fbc6fcbfe4..5fbb6c7a46 100644 --- a/packages/desktop/src/ui/collapsible.tsx +++ b/packages/desktop/src/ui/collapsible.tsx @@ -1,7 +1,7 @@ import { Collapsible as KobalteCollapsible } from "@kobalte/core/collapsible" +import { Icon, IconProps } from "@opencode-ai/ui/icon" import { splitProps } from "solid-js" import type { ComponentProps, ParentProps } from "solid-js" -import { Icon, type IconProps } from "@opencode-ai/ui" export interface CollapsibleProps extends ComponentProps {} export interface CollapsibleTriggerProps extends ComponentProps {} diff --git a/packages/desktop/src/ui/index.ts b/packages/desktop/src/ui/index.ts index e273e8efe6..8cbf0834f4 100644 --- a/packages/desktop/src/ui/index.ts +++ b/packages/desktop/src/ui/index.ts @@ -4,4 +4,3 @@ export { type CollapsibleTriggerProps, type CollapsibleContentProps, } from "./collapsible" -export { FileIcon, type FileIconProps } from "./file-icon" diff --git a/packages/desktop/vite.config.ts b/packages/desktop/vite.config.ts index 052d56aaee..8e43b9835b 100644 --- a/packages/desktop/vite.config.ts +++ b/packages/desktop/vite.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from "vite" import solidPlugin from "vite-plugin-solid" import tailwindcss from "@tailwindcss/vite" import path from "path" -import { iconsSpritesheet } from "vite-plugin-icons-spritesheet" export default defineConfig({ resolve: { @@ -10,18 +9,10 @@ export default defineConfig({ "@": path.resolve(__dirname, "./src"), }, }, - plugins: [ - tailwindcss(), - solidPlugin(), - iconsSpritesheet({ - withTypes: true, - inputDir: "src/assets/file-icons", - outputDir: "src/ui/file-icons", - formatter: "prettier", - }), - ], + plugins: [tailwindcss(), solidPlugin()], server: { host: "0.0.0.0", + allowedHosts: true, port: 3000, }, build: { diff --git a/packages/enterprise/.gitignore b/packages/enterprise/.gitignore new file mode 100644 index 0000000000..751513ce1b --- /dev/null +++ b/packages/enterprise/.gitignore @@ -0,0 +1,28 @@ +dist +.wrangler +.output +.vercel +.netlify +.vinxi +app.config.timestamp_*.js + +# Environment +.env +.env*.local + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +*.launch +.settings/ + +# Temp +gitignore + +# System Files +.DS_Store +Thumbs.db diff --git a/packages/enterprise/README.md b/packages/enterprise/README.md new file mode 100644 index 0000000000..9337430cfd --- /dev/null +++ b/packages/enterprise/README.md @@ -0,0 +1,32 @@ +# SolidStart + +Everything you need to build a Solid project, powered by [`solid-start`](https://start.solidjs.com); + +## Creating a project + +```bash +# create a new project in the current directory +npm init solid@latest + +# create a new project in my-app +npm init solid@latest my-app +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```bash +npm run dev + +# or start the server and open the app in a new browser tab +npm run dev -- --open +``` + +## Building + +Solid apps are built with _presets_, which optimise your project for deployment to different environments. + +By default, `npm run build` will generate a Node app that you can run with `npm start`. To use a different preset, add it to the `devDependencies` in `package.json` and specify in your `app.config.js`. + +## This project was created with the [Solid CLI](https://github.com/solidjs-community/solid-cli) diff --git a/packages/enterprise/app.config.ts b/packages/enterprise/app.config.ts new file mode 100644 index 0000000000..1feaf9c0e5 --- /dev/null +++ b/packages/enterprise/app.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "@solidjs/start/config" +import tailwindcss from "@tailwindcss/vite" + +export default defineConfig({ + vite: { + plugins: [tailwindcss() as any], + server: { + host: "0.0.0.0", + allowedHosts: true, + }, + }, +}) diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json new file mode 100644 index 0000000000..e30ebb13a1 --- /dev/null +++ b/packages/enterprise/package.json @@ -0,0 +1,35 @@ +{ + "name": "@opencode-ai/enterprise", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "typecheck": "tsgo --noEmit", + "dev": "vinxi dev", + "build": "vinxi build", + "start": "vinxi start" + }, + "dependencies": { + "@opencode-ai/util": "workspace:*", + "@opencode-ai/ui": "workspace:*", + "@solidjs/router": "catalog:", + "@solidjs/start": "catalog:", + "@solidjs/meta": "catalog:", + "hono": "catalog:", + "hono-openapi": "catalog:", + "luxon": "catalog:", + "solid-js": "catalog:", + "vinxi": "^0.5.7", + "zod": "catalog:" + }, + "devDependencies": { + "@tailwindcss/vite": "catalog:", + "@typescript/native-preview": "catalog:", + "@types/luxon": "catalog:", + "tailwindcss": "catalog:", + "typescript": "catalog:" + }, + "engines": { + "node": ">=22" + } +} diff --git a/packages/enterprise/public/favicon.ico b/packages/enterprise/public/favicon.ico new file mode 100644 index 0000000000..fb282da071 Binary files /dev/null and b/packages/enterprise/public/favicon.ico differ diff --git a/packages/enterprise/src/app.css b/packages/enterprise/src/app.css new file mode 100644 index 0000000000..01c61e62c1 --- /dev/null +++ b/packages/enterprise/src/app.css @@ -0,0 +1,18 @@ +@import "@opencode-ai/ui/styles/tailwind"; + +:root { + --background-rgb: 214, 219, 220; + --foreground-rgb: 0, 0, 0; +} + +@media (prefers-color-scheme: dark) { + :root { + --background-rgb: 0, 0, 0; + --foreground-rgb: 255, 255, 255; + } +} + +body { + /* background: rgb(var(--background-rgb)); */ + /* color: rgb(var(--foreground-rgb)); */ +} diff --git a/packages/enterprise/src/app.tsx b/packages/enterprise/src/app.tsx new file mode 100644 index 0000000000..fd10899f2a --- /dev/null +++ b/packages/enterprise/src/app.tsx @@ -0,0 +1,28 @@ +import { Router } from "@solidjs/router" +import { FileRoutes } from "@solidjs/start/router" +import { Suspense } from "solid-js" +import { Fonts } from "@opencode-ai/ui/fonts" +import { MetaProvider } from "@solidjs/meta" +import { MarkedProvider } from "@opencode-ai/ui/context/marked" +import "./app.css" + +export default function App() { + return ( + ( + <> + + + + + {props.children} + + + + + )} + > + + + ) +} diff --git a/packages/enterprise/src/core/share.ts b/packages/enterprise/src/core/share.ts new file mode 100644 index 0000000000..a7dfbfdcc0 --- /dev/null +++ b/packages/enterprise/src/core/share.ts @@ -0,0 +1,139 @@ +import { FileDiff, Message, Part, Session, SessionStatus } from "@opencode-ai/sdk" +import { fn } from "@opencode-ai/util/fn" +import { iife } from "@opencode-ai/util/iife" +import z from "zod" +import { Storage } from "./storage" + +export namespace Share { + export const Info = z.object({ + id: z.string(), + secret: z.string(), + }) + export type Info = z.infer + + export const Data = z.discriminatedUnion("type", [ + z.object({ + type: z.literal("session"), + data: z.custom(), + }), + z.object({ + type: z.literal("message"), + data: z.custom(), + }), + z.object({ + type: z.literal("part"), + data: z.custom(), + }), + z.object({ + type: z.literal("session_diff"), + data: z.custom(), + }), + z.object({ + type: z.literal("session_status"), + data: z.custom(), + }), + ]) + export type Data = z.infer + + export const create = fn(Info.pick({ id: true }), async (body) => { + const info: Info = { + id: body.id, + secret: crypto.randomUUID(), + } + const exists = await get(info.id) + if (exists) throw new Errors.AlreadyExists(info.id) + await Storage.write(["share", info.id], info) + console.log("created share", info.id) + return info + }) + + async function get(sessionID: string) { + return Storage.read(["share", sessionID]) + } + + export const remove = fn(Info.pick({ id: true, secret: true }), async (body) => { + const share = await get(body.id) + if (!share) throw new Errors.NotFound(body.id) + if (share.secret !== body.secret) throw new Errors.InvalidSecret(body.id) + await Storage.remove(["share", body.id]) + const list = await Storage.list(["share_data", body.id]) + for (const item of list) { + await Storage.remove(item) + } + }) + + export async function data(sessionID: string) { + const list = await Storage.list(["share_data", sessionID]) + const promises = [] + for (const item of list) { + promises.push( + iife(async () => { + const [, , type] = item + return { + type: type as any, + data: await Storage.read(item), + } as Data + }), + ) + } + return await Promise.all(promises) + } + + export const sync = fn( + z.object({ + share: Info, + data: Data.array(), + }), + async (input) => { + const share = await get(input.share.id) + if (!share) throw new Errors.NotFound(input.share.id) + if (share.secret !== input.share.secret) throw new Errors.InvalidSecret(input.share.id) + const promises = [] + for (const item of input.data) { + promises.push( + iife(async () => { + switch (item.type) { + case "session": + await Storage.write(["share_data", input.share.id, "session"], item.data) + break + case "message": + await Storage.write(["share_data", input.share.id, "message", item.data.id], item.data) + break + case "part": + await Storage.write( + ["share_data", input.share.id, "part", item.data.messageID, item.data.id], + item.data, + ) + break + case "session_diff": + await Storage.write(["share_data", input.share.id, "session_diff"], item.data) + break + case "session_status": + await Storage.write(["share_data", input.share.id, "session_status"], item.data) + break + } + }), + ) + } + await Promise.all(promises) + }, + ) + + export const Errors = { + NotFound: class extends Error { + constructor(public id: string) { + super(`Share not found: ${id}`) + } + }, + InvalidSecret: class extends Error { + constructor(public id: string) { + super(`Share secret invalid: ${id}`) + } + }, + AlreadyExists: class extends Error { + constructor(public id: string) { + super(`Share already exists: ${id}`) + } + }, + } +} diff --git a/packages/enterprise/src/core/storage.ts b/packages/enterprise/src/core/storage.ts new file mode 100644 index 0000000000..fb33ef389b --- /dev/null +++ b/packages/enterprise/src/core/storage.ts @@ -0,0 +1,134 @@ +import { + S3Client, + PutObjectCommand, + GetObjectCommand, + DeleteObjectCommand, + ListObjectsV2Command, +} from "@aws-sdk/client-s3" +import { lazy } from "@opencode-ai/util/lazy" + +export namespace Storage { + export interface Adapter { + read(path: string): Promise + write(path: string, value: string): Promise + remove(path: string): Promise + list(prefix: string): Promise + } + + function createAdapter(client: S3Client, bucket: string): Adapter { + return { + async read(path: string): Promise { + try { + console.log("reading", bucket, path) + const command = new GetObjectCommand({ + Bucket: bucket, + Key: path, + }) + const response = await client.send(command) + if (!response.Body) return undefined + return response.Body.transformToString() + } catch (e: any) { + if (e.name === "NoSuchKey") return undefined + throw e + } + }, + + async write(path: string, value: string): Promise { + const command = new PutObjectCommand({ + Bucket: bucket, + Key: path, + Body: value, + ContentType: "application/json", + }) + await client.send(command) + }, + + async remove(path: string): Promise { + const command = new DeleteObjectCommand({ + Bucket: bucket, + Key: path, + }) + await client.send(command) + }, + + async list(prefix: string): Promise { + const command = new ListObjectsV2Command({ + Bucket: bucket, + Prefix: prefix, + }) + const response = await client.send(command) + return response.Contents?.map((c) => c.Key!) || [] + }, + } + } + + function s3(): Adapter { + const bucket = process.env.OPENCODE_STORAGE_BUCKET! + const client = new S3Client({ + region: process.env.OPENCODE_STORAGE_REGION, + credentials: process.env.OPENCODE_STORAGE_ACCESS_KEY_ID + ? { + accessKeyId: process.env.OPENCODE_STORAGE_ACCESS_KEY_ID!, + secretAccessKey: process.env.OPENCODE_STORAGE_SECRET_ACCESS_KEY!, + } + : undefined, + }) + return createAdapter(client, bucket) + } + + function r2() { + const accountId = process.env.OPENCODE_STORAGE_ACCOUNT_ID! + const accessKeyId = process.env.OPENCODE_STORAGE_ACCESS_KEY_ID! + const secretAccessKey = process.env.OPENCODE_STORAGE_SECRET_ACCESS_KEY! + const bucket = process.env.OPENCODE_STORAGE_BUCKET! + + const client = new S3Client({ + region: "auto", + endpoint: `https://${accountId}.r2.cloudflarestorage.com`, + credentials: { + accessKeyId, + secretAccessKey, + }, + }) + return createAdapter(client, bucket) + } + + const adapter = lazy(() => { + const type = process.env.OPENCODE_STORAGE_ADAPTER + if (type === "r2") return r2() + if (type === "s3") return s3() + throw new Error("No storage adapter configured") + }) + + function resolve(key: string[]) { + return key.join("/") + ".json" + } + + export async function read(key: string[]) { + const result = await adapter().read(resolve(key)) + if (!result) return undefined + return JSON.parse(result) as T + } + + export function write(key: string[], value: T) { + return adapter().write(resolve(key), JSON.stringify(value)) + } + + export function remove(key: string[]) { + return adapter().remove(resolve(key)) + } + + export async function list(prefix: string[]) { + const p = prefix.join("/") + (prefix.length ? "/" : "") + const result = await adapter().list(p) + return result.map((x) => x.replace(/\.json$/, "").split("/")) + } + + export async function update(key: string[], fn: (draft: T) => void) { + const val = await read(key) + if (!val) throw new Error("Not found") + fn(val) + await write(key, val) + return val + } +} diff --git a/packages/enterprise/src/entry-client.tsx b/packages/enterprise/src/entry-client.tsx new file mode 100644 index 0000000000..642deacf73 --- /dev/null +++ b/packages/enterprise/src/entry-client.tsx @@ -0,0 +1,4 @@ +// @refresh reload +import { mount, StartClient } from "@solidjs/start/client" + +mount(() => , document.getElementById("app")!) diff --git a/packages/enterprise/src/entry-server.tsx b/packages/enterprise/src/entry-server.tsx new file mode 100644 index 0000000000..9f6d3b42ee --- /dev/null +++ b/packages/enterprise/src/entry-server.tsx @@ -0,0 +1,22 @@ +// @refresh reload +import { createHandler, StartServer } from "@solidjs/start/server" + +export default createHandler(() => ( + ( + + + + + + OpenCode + {assets} + + +
{children}
+ {scripts} + + + )} + /> +)) diff --git a/packages/enterprise/src/global.d.ts b/packages/enterprise/src/global.d.ts new file mode 100644 index 0000000000..dc6f10c226 --- /dev/null +++ b/packages/enterprise/src/global.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/enterprise/src/routes/[...404].tsx b/packages/enterprise/src/routes/[...404].tsx new file mode 100644 index 0000000000..d81a5f3b4e --- /dev/null +++ b/packages/enterprise/src/routes/[...404].tsx @@ -0,0 +1,25 @@ +import { A } from "@solidjs/router" + +export default function NotFound() { + return ( +
+

Not Found

+

+ Visit{" "} + + solidjs.com + {" "} + to learn how to build Solid apps. +

+

+ + Home + + {" - "} + + About Page + +

+
+ ) +} diff --git a/packages/enterprise/src/routes/api/[...path].ts b/packages/enterprise/src/routes/api/[...path].ts new file mode 100644 index 0000000000..bbca171bd2 --- /dev/null +++ b/packages/enterprise/src/routes/api/[...path].ts @@ -0,0 +1,152 @@ +import type { APIEvent } from "@solidjs/start/server" +import { Hono } from "hono" +import { describeRoute, openAPIRouteHandler, resolver } from "hono-openapi" +import { validator } from "hono-openapi" +import z from "zod" +import { cors } from "hono/cors" +import { Share } from "~/core/share" + +const app = new Hono() + +app + .basePath("/api") + .use(cors()) + .get( + "/doc", + openAPIRouteHandler(app, { + documentation: { + info: { + title: "Opencode Enterprise API", + version: "1.0.0", + description: "Opencode Enterprise API endpoints", + }, + openapi: "3.1.1", + }, + }), + ) + .post( + "/share", + describeRoute({ + description: "Create a share", + operationId: "share.create", + responses: { + 200: { + description: "Success", + content: { + "application/json": { + schema: resolver( + z + .object({ + url: z.string(), + secret: z.string(), + }) + .meta({ ref: "Share" }), + ), + }, + }, + }, + }, + }), + validator("json", z.object({ sessionID: z.string() })), + async (c) => { + const body = c.req.valid("json") + const share = await Share.create({ id: body.sessionID }) + const protocol = c.req.header("x-forwarded-proto") ?? c.req.header("x-forwarded-protocol") ?? "https" + const host = c.req.header("x-forwarded-host") ?? c.req.header("host") + return c.json({ + secret: share.secret, + url: `${protocol}://${host}/share/${share.id}`, + }) + }, + ) + .post( + "/share/:sessionID/sync", + describeRoute({ + description: "Sync share data", + operationId: "share.sync", + responses: { + 200: { + description: "Success", + content: { + "application/json": { + schema: resolver(z.object({})), + }, + }, + }, + }, + }), + validator("param", z.object({ sessionID: z.string() })), + validator("json", z.object({ secret: z.string(), data: Share.Data.array() })), + async (c) => { + const { sessionID } = c.req.valid("param") + const body = c.req.valid("json") + await Share.sync({ + share: { id: sessionID, secret: body.secret }, + data: body.data, + }) + return c.json({}) + }, + ) + .get( + "/share/:sessionID/data", + describeRoute({ + description: "Get share data", + operationId: "share.data", + responses: { + 200: { + description: "Success", + content: { + "application/json": { + schema: resolver(z.array(Share.Data)), + }, + }, + }, + }, + }), + validator("param", z.object({ sessionID: z.string() })), + async (c) => { + const { sessionID } = c.req.valid("param") + return c.json(await Share.data(sessionID)) + }, + ) + .delete( + "/share/:sessionID", + describeRoute({ + description: "Remove a share", + operationId: "share.remove", + responses: { + 200: { + description: "Success", + content: { + "application/json": { + schema: resolver(z.object({})), + }, + }, + }, + }, + }), + validator("param", z.object({ sessionID: z.string() })), + validator("json", z.object({ secret: z.string() })), + async (c) => { + const { sessionID } = c.req.valid("param") + const body = c.req.valid("json") + await Share.remove({ id: sessionID, secret: body.secret }) + return c.json({}) + }, + ) + +export function GET(event: APIEvent) { + return app.fetch(event.request) +} + +export function POST(event: APIEvent) { + return app.fetch(event.request) +} + +export function PUT(event: APIEvent) { + return app.fetch(event.request) +} + +export async function DELETE(event: APIEvent) { + return app.fetch(event.request) +} diff --git a/packages/enterprise/src/routes/share.tsx b/packages/enterprise/src/routes/share.tsx new file mode 100644 index 0000000000..26e3d61a8b --- /dev/null +++ b/packages/enterprise/src/routes/share.tsx @@ -0,0 +1,5 @@ +import { ParentProps } from "solid-js" + +export default function Share(props: ParentProps) { + return props.children +} diff --git a/packages/enterprise/src/routes/share/[sessionID].tsx b/packages/enterprise/src/routes/share/[sessionID].tsx new file mode 100644 index 0000000000..65d894b548 --- /dev/null +++ b/packages/enterprise/src/routes/share/[sessionID].tsx @@ -0,0 +1,172 @@ +import { FileDiff, Message, Part, Session, SessionStatus } from "@opencode-ai/sdk" +import { SessionTimeline } from "@opencode-ai/ui/session-timeline" +import { SessionReview } from "@opencode-ai/ui/session-review" +import { DataProvider, useData } from "@opencode-ai/ui/context" +import { createAsync, query, RouteDefinition, useParams } from "@solidjs/router" +import { createMemo, Show } from "solid-js" +import { Share } from "~/core/share" +import { Logo, Mark } from "@opencode-ai/ui/logo" +import { IconButton } from "@opencode-ai/ui/icon-button" +import { iife } from "@opencode-ai/util/iife" +import { Binary } from "@opencode-ai/util/binary" +import { DateTime } from "luxon" + +const getData = query(async (sessionID) => { + const data = await Share.data(sessionID) + const result: { + session: Session[] + session_diff: { + [sessionID: string]: FileDiff[] + } + session_status: { + [sessionID: string]: SessionStatus + } + message: { + [sessionID: string]: Message[] + } + part: { + [messageID: string]: Part[] + } + } = { + session: [], + session_diff: { + [sessionID]: [], + }, + session_status: { + [sessionID]: { + type: "idle", + }, + }, + message: {}, + part: {}, + } + + for (const item of data) { + switch (item.type) { + case "session": + result.session.push(item.data) + break + case "session_diff": + result.session_diff[sessionID] = item.data + break + case "session_status": + result.session_status[sessionID] = item.data + break + case "message": + result.message[item.data.sessionID] = result.message[item.data.sessionID] ?? [] + result.message[item.data.sessionID].push(item.data) + break + case "part": + result.part[item.data.messageID] = result.part[item.data.messageID] ?? [] + result.part[item.data.messageID].push(item.data) + break + } + } + return result +}, "getShareData") + +export const route = { + preload: ({ params }) => getData(params.sessionID), +} satisfies RouteDefinition + +export default function () { + const params = useParams() + const data = createAsync(async () => { + if (!params.sessionID) return + return getData(params.sessionID) + }) + + return ( + + {(data) => ( + + {iife(() => { + const data = useData() + const match = createMemo(() => Binary.search(data.session, params.sessionID!, (s) => s.id)) + if (!match().found) throw new Error(`Session ${params.sessionID} not found`) + const info = createMemo(() => data.session[match().index]) + const firstUserMessage = createMemo(() => + data.message[params.sessionID!]?.filter((m) => m.role === "user")?.at(0), + ) + const provider = createMemo(() => firstUserMessage()?.model?.providerID) + const model = createMemo(() => firstUserMessage()?.model?.modelID) + const diffs = createMemo(() => data.session_diff[params.sessionID!] ?? []) + + return ( +
+
+
+ + + +
+
+ + +
+
+
+
+
0, + "px-6 max-w-2xl": diffs().length === 0, + }} + > +
+
+
+ +
v{info().version}
+
+
+ +
{model()}
+
+
+ {DateTime.fromMillis(info().time.created).toFormat("dd MMM yyyy, HH:mm")} +
+
+
{info().title}
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ ) + })} +
+ )} +
+ ) +} diff --git a/packages/enterprise/tsconfig.json b/packages/enterprise/tsconfig.json new file mode 100644 index 0000000000..0a44d1efea --- /dev/null +++ b/packages/enterprise/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "bundler", + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "jsx": "preserve", + "jsxImportSource": "solid-js", + "allowJs": true, + "noEmit": true, + "strict": true, + "types": ["vinxi/types/client"], + "isolatedModules": true, + "paths": { + "~/*": ["./src/*"] + } + } +} diff --git a/packages/opencode/package.json b/packages/opencode/package.json index d955374b77..32552cef24 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -55,6 +55,7 @@ "@opencode-ai/plugin": "workspace:*", "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "0.1.47", "@opentui/solid": "0.1.47", "@parcel/watcher": "2.5.1", @@ -70,7 +71,7 @@ "fuzzysort": "3.1.0", "gray-matter": "4.0.3", "hono": "catalog:", - "hono-openapi": "1.1.1", + "hono-openapi": "catalog:", "ignore": "7.0.5", "jsonc-parser": "3.3.1", "minimatch": "10.0.3", diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx index a5e13adb41..8022de3280 100644 --- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx +++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx @@ -17,7 +17,7 @@ import type { } from "@opencode-ai/sdk" import { createStore, produce, reconcile } from "solid-js/store" import { useSDK } from "@tui/context/sdk" -import { Binary } from "@/util/binary" +import { Binary } from "@opencode-ai/util/binary" import { createSimpleContext } from "./helper" import type { Snapshot } from "@/snapshot" import { useExit } from "./exit" diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 7f1c4d618f..3ffb76cbae 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -609,6 +609,11 @@ export namespace Config { }) .optional(), tools: z.record(z.string(), z.boolean()).optional(), + enterprise: z + .object({ + url: z.string().optional().describe("Enterprise URL"), + }) + .optional(), experimental: z .object({ hook: z diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index 4d5d6fa90d..5840c9768b 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -10,11 +10,13 @@ import { Bus } from "../bus" import { Command } from "../command" import { Instance } from "./instance" import { Log } from "@/util/log" +import { ShareNext } from "@/share/share-next" export async function InstanceBootstrap() { Log.Default.info("bootstrapping", { directory: Instance.directory }) await Plugin.init() Share.init() + ShareNext.init() Format.init() await LSP.init() FileWatcher.init() diff --git a/packages/opencode/src/server/server.ts b/packages/opencode/src/server/server.ts index 55f62fd7f2..f6530ee99c 100644 --- a/packages/opencode/src/server/server.ts +++ b/packages/opencode/src/server/server.ts @@ -42,6 +42,7 @@ import { Snapshot } from "@/snapshot" import { SessionSummary } from "@/session/summary" import { GlobalBus } from "@/bus/global" import { SessionStatus } from "@/session/status" +import { ShareNext } from "@/share/share-next" // @ts-ignore This global is needed to prevent ai-sdk from logging warnings to stdout https://github.com/vercel/ai/blob/2dc67e0ef538307f21368db32d5a12345d98831b/packages/ai/src/logger/log-warnings.ts#L85 globalThis.AI_SDK_LOG_WARNINGS = false diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index 2939db780f..f09818caa2 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -16,6 +16,7 @@ import { SessionPrompt } from "./prompt" import { fn } from "@/util/fn" import { Command } from "../command" import { Snapshot } from "@/snapshot" +import { ShareNext } from "@/share/share-next" export namespace Session { const log = Log.create({ service: "session" }) @@ -221,6 +222,15 @@ export namespace Session { throw new Error("Sharing is disabled in configuration") } + if (cfg.enterprise?.url) { + const share = await ShareNext.create(id) + await update(id, (draft) => { + draft.share = { + url: share.url, + } + }) + } + const session = await get(id) if (session.share) return session.share const share = await Share.create(id) @@ -241,6 +251,13 @@ export namespace Session { }) export const unshare = fn(Identifier.schema("session"), async (id) => { + const cfg = await Config.get() + if (cfg.enterprise?.url) { + await ShareNext.remove(id) + await update(id, (draft) => { + draft.share = undefined + }) + } const share = await getShare(id) if (!share) return await Storage.remove(["share", id]) diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 2af8e888eb..6d1125c66b 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -319,8 +319,6 @@ export namespace SessionProcessor { break case "finish": - input.assistantMessage.time.completed = Date.now() - await Session.updateMessage(input.assistantMessage) break default: diff --git a/packages/opencode/src/share/share-next.ts b/packages/opencode/src/share/share-next.ts new file mode 100644 index 0000000000..99269a50f9 --- /dev/null +++ b/packages/opencode/src/share/share-next.ts @@ -0,0 +1,148 @@ +import { Bus } from "@/bus" +import { Config } from "@/config/config" +import { Session } from "@/session" +import { MessageV2 } from "@/session/message-v2" +import { Storage } from "@/storage/storage" +import { Log } from "@/util/log" +import type * as SDK from "@opencode-ai/sdk" + +export namespace ShareNext { + const log = Log.create({ service: "share-next" }) + export async function init() { + const config = await Config.get() + if (!config.enterprise) return + Bus.subscribe(Session.Event.Updated, async (evt) => { + await sync(evt.properties.info.id, [ + { + type: "session", + data: evt.properties.info, + }, + ]) + }) + Bus.subscribe(MessageV2.Event.Updated, async (evt) => { + await sync(evt.properties.info.sessionID, [ + { + type: "message", + data: evt.properties.info, + }, + ]) + }) + Bus.subscribe(MessageV2.Event.PartUpdated, async (evt) => { + await sync(evt.properties.part.sessionID, [ + { + type: "part", + data: evt.properties.part, + }, + ]) + }) + Bus.subscribe(Session.Event.Diff, async (evt) => { + await sync(evt.properties.sessionID, [ + { + type: "session_diff", + data: evt.properties.diff, + }, + ]) + }) + } + + export async function create(sessionID: string) { + log.info("creating share", { sessionID }) + const url = await Config.get().then((x) => x.enterprise!.url) + const result = await fetch(`${url}/api/share`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ sessionID: sessionID }), + }) + .then((x) => x.json()) + .then((x) => x as { url: string; secret: string }) + await Storage.write(["session_share", sessionID], { + id: sessionID, + ...result, + }) + fullSync(sessionID) + return result + } + + function get(sessionID: string) { + return Storage.read<{ + id: string + secret: string + url: string + }>(["session_share", sessionID]) + } + + type Data = + | { + type: "session" + data: SDK.Session + } + | { + type: "message" + data: SDK.Message + } + | { + type: "part" + data: SDK.Part + } + | { + type: "session_diff" + data: SDK.FileDiff[] + } + + async function sync(sessionID: string, data: Data[]) { + const url = await Config.get().then((x) => x.enterprise!.url) + const share = await get(sessionID) + if (!share) return + await fetch(`${url}/api/share/${share.id}/sync`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + secret: share.secret, + data, + }), + }) + } + + export async function remove(sessionID: string) { + log.info("removing share", { sessionID }) + const url = await Config.get().then((x) => x.enterprise!.url) + const share = await get(sessionID) + if (!share) return + await fetch(`${url}/api/share/${share.id}`, { + method: "DELETE", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + secret: share.secret, + }), + }) + await Storage.remove(["session_share", share.id]) + } + + async function fullSync(sessionID: string) { + log.info("full sync", { sessionID }) + const session = await Session.get(sessionID) + const diffs = await Session.diff(sessionID) + const messages = await Array.fromAsync(MessageV2.stream(sessionID)) + await sync(sessionID, [ + { + type: "session", + data: session, + }, + ...messages.map((x) => ({ + type: "message" as const, + data: x.info, + })), + ...messages.flatMap((x) => x.parts.map((y) => ({ type: "part" as const, data: y }))), + { + type: "session_diff", + data: diffs, + }, + ]) + } +} diff --git a/packages/opencode/src/util/binary.ts b/packages/opencode/src/util/binary.ts deleted file mode 100644 index 3d8f61851a..0000000000 --- a/packages/opencode/src/util/binary.ts +++ /dev/null @@ -1,41 +0,0 @@ -export namespace Binary { - export function search(array: T[], id: string, compare: (item: T) => string): { found: boolean; index: number } { - let left = 0 - let right = array.length - 1 - - while (left <= right) { - const mid = Math.floor((left + right) / 2) - const midId = compare(array[mid]) - - if (midId === id) { - return { found: true, index: mid } - } else if (midId < id) { - left = mid + 1 - } else { - right = mid - 1 - } - } - - return { found: false, index: left } - } - - export function insert(array: T[], item: T, compare: (item: T) => string): T[] { - const id = compare(item) - let left = 0 - let right = array.length - - while (left < right) { - const mid = Math.floor((left + right) / 2) - const midId = compare(array[mid]) - - if (midId < id) { - left = mid + 1 - } else { - right = mid - } - } - - array.splice(left, 0, item) - return array - } -} diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 892150d5e8..4615f3fe08 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -24,4 +24,4 @@ "typescript": "catalog:", "@typescript/native-preview": "catalog:" } -} \ No newline at end of file +} diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index 878e845dcd..4fdf60c2c2 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -26,4 +26,4 @@ "publishConfig": { "directory": "dist" } -} \ No newline at end of file +} diff --git a/packages/ui/package.json b/packages/ui/package.json index 045eb9d7aa..9d42ad7324 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -3,9 +3,10 @@ "version": "1.0.90", "type": "module", "exports": { - ".": "./src/components/index.ts", "./*": "./src/components/*.tsx", "./hooks": "./src/hooks/index.ts", + "./context": "./src/context/index.ts", + "./context/*": "./src/context/*.tsx", "./styles": "./src/styles/index.css", "./styles/tailwind": "./src/styles/tailwind/index.css", "./fonts/*": "./src/assets/fonts/*" @@ -13,6 +14,7 @@ "scripts": { "typecheck": "tsgo --noEmit", "dev": "vite", + "build": "vite build", "generate:tailwind": "bun run script/tailwind.ts" }, "devDependencies": { @@ -20,6 +22,7 @@ "@tsconfig/node22": "catalog:", "typescript": "catalog:", "vite": "catalog:", + "vite-plugin-icons-spritesheet": "3.0.1", "vite-plugin-solid": "catalog:", "tailwindcss": "catalog:", "@tailwindcss/vite": "catalog:" @@ -27,6 +30,7 @@ "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/sdk": "workspace:*", + "@opencode-ai/util": "workspace:*", "@pierre/precision-diffs": "catalog:", "@shikijs/transformers": "3.9.2", "@solidjs/meta": "catalog:", diff --git a/packages/desktop/src/assets/file-icons/3d.svg b/packages/ui/src/assets/file-icons/3d.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/3d.svg rename to packages/ui/src/assets/file-icons/3d.svg diff --git a/packages/desktop/src/assets/file-icons/abap.svg b/packages/ui/src/assets/file-icons/abap.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/abap.svg rename to packages/ui/src/assets/file-icons/abap.svg diff --git a/packages/desktop/src/assets/file-icons/abc.svg b/packages/ui/src/assets/file-icons/abc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/abc.svg rename to packages/ui/src/assets/file-icons/abc.svg diff --git a/packages/desktop/src/assets/file-icons/actionscript.svg b/packages/ui/src/assets/file-icons/actionscript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/actionscript.svg rename to packages/ui/src/assets/file-icons/actionscript.svg diff --git a/packages/desktop/src/assets/file-icons/ada.svg b/packages/ui/src/assets/file-icons/ada.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ada.svg rename to packages/ui/src/assets/file-icons/ada.svg diff --git a/packages/desktop/src/assets/file-icons/adobe-illustrator.svg b/packages/ui/src/assets/file-icons/adobe-illustrator.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/adobe-illustrator.svg rename to packages/ui/src/assets/file-icons/adobe-illustrator.svg diff --git a/packages/desktop/src/assets/file-icons/adobe-illustrator_light.svg b/packages/ui/src/assets/file-icons/adobe-illustrator_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/adobe-illustrator_light.svg rename to packages/ui/src/assets/file-icons/adobe-illustrator_light.svg diff --git a/packages/desktop/src/assets/file-icons/adobe-photoshop.svg b/packages/ui/src/assets/file-icons/adobe-photoshop.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/adobe-photoshop.svg rename to packages/ui/src/assets/file-icons/adobe-photoshop.svg diff --git a/packages/desktop/src/assets/file-icons/adobe-photoshop_light.svg b/packages/ui/src/assets/file-icons/adobe-photoshop_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/adobe-photoshop_light.svg rename to packages/ui/src/assets/file-icons/adobe-photoshop_light.svg diff --git a/packages/desktop/src/assets/file-icons/adobe-swc.svg b/packages/ui/src/assets/file-icons/adobe-swc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/adobe-swc.svg rename to packages/ui/src/assets/file-icons/adobe-swc.svg diff --git a/packages/desktop/src/assets/file-icons/adonis.svg b/packages/ui/src/assets/file-icons/adonis.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/adonis.svg rename to packages/ui/src/assets/file-icons/adonis.svg diff --git a/packages/desktop/src/assets/file-icons/advpl.svg b/packages/ui/src/assets/file-icons/advpl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/advpl.svg rename to packages/ui/src/assets/file-icons/advpl.svg diff --git a/packages/desktop/src/assets/file-icons/amplify.svg b/packages/ui/src/assets/file-icons/amplify.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/amplify.svg rename to packages/ui/src/assets/file-icons/amplify.svg diff --git a/packages/desktop/src/assets/file-icons/android.svg b/packages/ui/src/assets/file-icons/android.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/android.svg rename to packages/ui/src/assets/file-icons/android.svg diff --git a/packages/desktop/src/assets/file-icons/angular.svg b/packages/ui/src/assets/file-icons/angular.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/angular.svg rename to packages/ui/src/assets/file-icons/angular.svg diff --git a/packages/desktop/src/assets/file-icons/antlr.svg b/packages/ui/src/assets/file-icons/antlr.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/antlr.svg rename to packages/ui/src/assets/file-icons/antlr.svg diff --git a/packages/desktop/src/assets/file-icons/apiblueprint.svg b/packages/ui/src/assets/file-icons/apiblueprint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/apiblueprint.svg rename to packages/ui/src/assets/file-icons/apiblueprint.svg diff --git a/packages/desktop/src/assets/file-icons/apollo.svg b/packages/ui/src/assets/file-icons/apollo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/apollo.svg rename to packages/ui/src/assets/file-icons/apollo.svg diff --git a/packages/desktop/src/assets/file-icons/applescript.svg b/packages/ui/src/assets/file-icons/applescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/applescript.svg rename to packages/ui/src/assets/file-icons/applescript.svg diff --git a/packages/desktop/src/assets/file-icons/apps-script.svg b/packages/ui/src/assets/file-icons/apps-script.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/apps-script.svg rename to packages/ui/src/assets/file-icons/apps-script.svg diff --git a/packages/desktop/src/assets/file-icons/appveyor.svg b/packages/ui/src/assets/file-icons/appveyor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/appveyor.svg rename to packages/ui/src/assets/file-icons/appveyor.svg diff --git a/packages/desktop/src/assets/file-icons/architecture.svg b/packages/ui/src/assets/file-icons/architecture.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/architecture.svg rename to packages/ui/src/assets/file-icons/architecture.svg diff --git a/packages/desktop/src/assets/file-icons/arduino.svg b/packages/ui/src/assets/file-icons/arduino.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/arduino.svg rename to packages/ui/src/assets/file-icons/arduino.svg diff --git a/packages/desktop/src/assets/file-icons/asciidoc.svg b/packages/ui/src/assets/file-icons/asciidoc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/asciidoc.svg rename to packages/ui/src/assets/file-icons/asciidoc.svg diff --git a/packages/desktop/src/assets/file-icons/assembly.svg b/packages/ui/src/assets/file-icons/assembly.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/assembly.svg rename to packages/ui/src/assets/file-icons/assembly.svg diff --git a/packages/desktop/src/assets/file-icons/astro-config.svg b/packages/ui/src/assets/file-icons/astro-config.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/astro-config.svg rename to packages/ui/src/assets/file-icons/astro-config.svg diff --git a/packages/desktop/src/assets/file-icons/astro.svg b/packages/ui/src/assets/file-icons/astro.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/astro.svg rename to packages/ui/src/assets/file-icons/astro.svg diff --git a/packages/desktop/src/assets/file-icons/astyle.svg b/packages/ui/src/assets/file-icons/astyle.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/astyle.svg rename to packages/ui/src/assets/file-icons/astyle.svg diff --git a/packages/desktop/src/assets/file-icons/audio.svg b/packages/ui/src/assets/file-icons/audio.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/audio.svg rename to packages/ui/src/assets/file-icons/audio.svg diff --git a/packages/desktop/src/assets/file-icons/aurelia.svg b/packages/ui/src/assets/file-icons/aurelia.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/aurelia.svg rename to packages/ui/src/assets/file-icons/aurelia.svg diff --git a/packages/desktop/src/assets/file-icons/authors.svg b/packages/ui/src/assets/file-icons/authors.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/authors.svg rename to packages/ui/src/assets/file-icons/authors.svg diff --git a/packages/desktop/src/assets/file-icons/auto.svg b/packages/ui/src/assets/file-icons/auto.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/auto.svg rename to packages/ui/src/assets/file-icons/auto.svg diff --git a/packages/desktop/src/assets/file-icons/auto_light.svg b/packages/ui/src/assets/file-icons/auto_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/auto_light.svg rename to packages/ui/src/assets/file-icons/auto_light.svg diff --git a/packages/desktop/src/assets/file-icons/autohotkey.svg b/packages/ui/src/assets/file-icons/autohotkey.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/autohotkey.svg rename to packages/ui/src/assets/file-icons/autohotkey.svg diff --git a/packages/desktop/src/assets/file-icons/autoit.svg b/packages/ui/src/assets/file-icons/autoit.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/autoit.svg rename to packages/ui/src/assets/file-icons/autoit.svg diff --git a/packages/desktop/src/assets/file-icons/azure-pipelines.svg b/packages/ui/src/assets/file-icons/azure-pipelines.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/azure-pipelines.svg rename to packages/ui/src/assets/file-icons/azure-pipelines.svg diff --git a/packages/desktop/src/assets/file-icons/azure.svg b/packages/ui/src/assets/file-icons/azure.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/azure.svg rename to packages/ui/src/assets/file-icons/azure.svg diff --git a/packages/desktop/src/assets/file-icons/babel.svg b/packages/ui/src/assets/file-icons/babel.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/babel.svg rename to packages/ui/src/assets/file-icons/babel.svg diff --git a/packages/desktop/src/assets/file-icons/ballerina.svg b/packages/ui/src/assets/file-icons/ballerina.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ballerina.svg rename to packages/ui/src/assets/file-icons/ballerina.svg diff --git a/packages/desktop/src/assets/file-icons/bazel.svg b/packages/ui/src/assets/file-icons/bazel.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bazel.svg rename to packages/ui/src/assets/file-icons/bazel.svg diff --git a/packages/desktop/src/assets/file-icons/bbx.svg b/packages/ui/src/assets/file-icons/bbx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bbx.svg rename to packages/ui/src/assets/file-icons/bbx.svg diff --git a/packages/desktop/src/assets/file-icons/beancount.svg b/packages/ui/src/assets/file-icons/beancount.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/beancount.svg rename to packages/ui/src/assets/file-icons/beancount.svg diff --git a/packages/desktop/src/assets/file-icons/bench-js.svg b/packages/ui/src/assets/file-icons/bench-js.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bench-js.svg rename to packages/ui/src/assets/file-icons/bench-js.svg diff --git a/packages/desktop/src/assets/file-icons/bench-jsx.svg b/packages/ui/src/assets/file-icons/bench-jsx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bench-jsx.svg rename to packages/ui/src/assets/file-icons/bench-jsx.svg diff --git a/packages/desktop/src/assets/file-icons/bench-ts.svg b/packages/ui/src/assets/file-icons/bench-ts.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bench-ts.svg rename to packages/ui/src/assets/file-icons/bench-ts.svg diff --git a/packages/desktop/src/assets/file-icons/bibliography.svg b/packages/ui/src/assets/file-icons/bibliography.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bibliography.svg rename to packages/ui/src/assets/file-icons/bibliography.svg diff --git a/packages/desktop/src/assets/file-icons/bibtex-style.svg b/packages/ui/src/assets/file-icons/bibtex-style.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bibtex-style.svg rename to packages/ui/src/assets/file-icons/bibtex-style.svg diff --git a/packages/desktop/src/assets/file-icons/bicep.svg b/packages/ui/src/assets/file-icons/bicep.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bicep.svg rename to packages/ui/src/assets/file-icons/bicep.svg diff --git a/packages/desktop/src/assets/file-icons/biome.svg b/packages/ui/src/assets/file-icons/biome.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/biome.svg rename to packages/ui/src/assets/file-icons/biome.svg diff --git a/packages/desktop/src/assets/file-icons/bitbucket.svg b/packages/ui/src/assets/file-icons/bitbucket.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bitbucket.svg rename to packages/ui/src/assets/file-icons/bitbucket.svg diff --git a/packages/desktop/src/assets/file-icons/bithound.svg b/packages/ui/src/assets/file-icons/bithound.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bithound.svg rename to packages/ui/src/assets/file-icons/bithound.svg diff --git a/packages/desktop/src/assets/file-icons/blender.svg b/packages/ui/src/assets/file-icons/blender.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/blender.svg rename to packages/ui/src/assets/file-icons/blender.svg diff --git a/packages/desktop/src/assets/file-icons/blink.svg b/packages/ui/src/assets/file-icons/blink.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/blink.svg rename to packages/ui/src/assets/file-icons/blink.svg diff --git a/packages/desktop/src/assets/file-icons/blink_light.svg b/packages/ui/src/assets/file-icons/blink_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/blink_light.svg rename to packages/ui/src/assets/file-icons/blink_light.svg diff --git a/packages/desktop/src/assets/file-icons/blitz.svg b/packages/ui/src/assets/file-icons/blitz.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/blitz.svg rename to packages/ui/src/assets/file-icons/blitz.svg diff --git a/packages/desktop/src/assets/file-icons/bower.svg b/packages/ui/src/assets/file-icons/bower.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bower.svg rename to packages/ui/src/assets/file-icons/bower.svg diff --git a/packages/desktop/src/assets/file-icons/brainfuck.svg b/packages/ui/src/assets/file-icons/brainfuck.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/brainfuck.svg rename to packages/ui/src/assets/file-icons/brainfuck.svg diff --git a/packages/desktop/src/assets/file-icons/browserlist.svg b/packages/ui/src/assets/file-icons/browserlist.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/browserlist.svg rename to packages/ui/src/assets/file-icons/browserlist.svg diff --git a/packages/desktop/src/assets/file-icons/browserlist_light.svg b/packages/ui/src/assets/file-icons/browserlist_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/browserlist_light.svg rename to packages/ui/src/assets/file-icons/browserlist_light.svg diff --git a/packages/desktop/src/assets/file-icons/bruno.svg b/packages/ui/src/assets/file-icons/bruno.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bruno.svg rename to packages/ui/src/assets/file-icons/bruno.svg diff --git a/packages/desktop/src/assets/file-icons/buck.svg b/packages/ui/src/assets/file-icons/buck.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/buck.svg rename to packages/ui/src/assets/file-icons/buck.svg diff --git a/packages/desktop/src/assets/file-icons/bucklescript.svg b/packages/ui/src/assets/file-icons/bucklescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bucklescript.svg rename to packages/ui/src/assets/file-icons/bucklescript.svg diff --git a/packages/desktop/src/assets/file-icons/buildkite.svg b/packages/ui/src/assets/file-icons/buildkite.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/buildkite.svg rename to packages/ui/src/assets/file-icons/buildkite.svg diff --git a/packages/desktop/src/assets/file-icons/bun.svg b/packages/ui/src/assets/file-icons/bun.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bun.svg rename to packages/ui/src/assets/file-icons/bun.svg diff --git a/packages/desktop/src/assets/file-icons/bun_light.svg b/packages/ui/src/assets/file-icons/bun_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/bun_light.svg rename to packages/ui/src/assets/file-icons/bun_light.svg diff --git a/packages/desktop/src/assets/file-icons/c.svg b/packages/ui/src/assets/file-icons/c.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/c.svg rename to packages/ui/src/assets/file-icons/c.svg diff --git a/packages/desktop/src/assets/file-icons/c3.svg b/packages/ui/src/assets/file-icons/c3.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/c3.svg rename to packages/ui/src/assets/file-icons/c3.svg diff --git a/packages/desktop/src/assets/file-icons/cabal.svg b/packages/ui/src/assets/file-icons/cabal.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cabal.svg rename to packages/ui/src/assets/file-icons/cabal.svg diff --git a/packages/desktop/src/assets/file-icons/caddy.svg b/packages/ui/src/assets/file-icons/caddy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/caddy.svg rename to packages/ui/src/assets/file-icons/caddy.svg diff --git a/packages/desktop/src/assets/file-icons/cadence.svg b/packages/ui/src/assets/file-icons/cadence.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cadence.svg rename to packages/ui/src/assets/file-icons/cadence.svg diff --git a/packages/desktop/src/assets/file-icons/cairo.svg b/packages/ui/src/assets/file-icons/cairo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cairo.svg rename to packages/ui/src/assets/file-icons/cairo.svg diff --git a/packages/desktop/src/assets/file-icons/cake.svg b/packages/ui/src/assets/file-icons/cake.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cake.svg rename to packages/ui/src/assets/file-icons/cake.svg diff --git a/packages/desktop/src/assets/file-icons/capacitor.svg b/packages/ui/src/assets/file-icons/capacitor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/capacitor.svg rename to packages/ui/src/assets/file-icons/capacitor.svg diff --git a/packages/desktop/src/assets/file-icons/capnp.svg b/packages/ui/src/assets/file-icons/capnp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/capnp.svg rename to packages/ui/src/assets/file-icons/capnp.svg diff --git a/packages/desktop/src/assets/file-icons/cbx.svg b/packages/ui/src/assets/file-icons/cbx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cbx.svg rename to packages/ui/src/assets/file-icons/cbx.svg diff --git a/packages/desktop/src/assets/file-icons/cds.svg b/packages/ui/src/assets/file-icons/cds.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cds.svg rename to packages/ui/src/assets/file-icons/cds.svg diff --git a/packages/desktop/src/assets/file-icons/certificate.svg b/packages/ui/src/assets/file-icons/certificate.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/certificate.svg rename to packages/ui/src/assets/file-icons/certificate.svg diff --git a/packages/desktop/src/assets/file-icons/changelog.svg b/packages/ui/src/assets/file-icons/changelog.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/changelog.svg rename to packages/ui/src/assets/file-icons/changelog.svg diff --git a/packages/desktop/src/assets/file-icons/chess.svg b/packages/ui/src/assets/file-icons/chess.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/chess.svg rename to packages/ui/src/assets/file-icons/chess.svg diff --git a/packages/desktop/src/assets/file-icons/chess_light.svg b/packages/ui/src/assets/file-icons/chess_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/chess_light.svg rename to packages/ui/src/assets/file-icons/chess_light.svg diff --git a/packages/desktop/src/assets/file-icons/chrome.svg b/packages/ui/src/assets/file-icons/chrome.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/chrome.svg rename to packages/ui/src/assets/file-icons/chrome.svg diff --git a/packages/desktop/src/assets/file-icons/circleci.svg b/packages/ui/src/assets/file-icons/circleci.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/circleci.svg rename to packages/ui/src/assets/file-icons/circleci.svg diff --git a/packages/desktop/src/assets/file-icons/circleci_light.svg b/packages/ui/src/assets/file-icons/circleci_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/circleci_light.svg rename to packages/ui/src/assets/file-icons/circleci_light.svg diff --git a/packages/desktop/src/assets/file-icons/citation.svg b/packages/ui/src/assets/file-icons/citation.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/citation.svg rename to packages/ui/src/assets/file-icons/citation.svg diff --git a/packages/desktop/src/assets/file-icons/clangd.svg b/packages/ui/src/assets/file-icons/clangd.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/clangd.svg rename to packages/ui/src/assets/file-icons/clangd.svg diff --git a/packages/desktop/src/assets/file-icons/claude.svg b/packages/ui/src/assets/file-icons/claude.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/claude.svg rename to packages/ui/src/assets/file-icons/claude.svg diff --git a/packages/desktop/src/assets/file-icons/cline.svg b/packages/ui/src/assets/file-icons/cline.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cline.svg rename to packages/ui/src/assets/file-icons/cline.svg diff --git a/packages/desktop/src/assets/file-icons/clojure.svg b/packages/ui/src/assets/file-icons/clojure.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/clojure.svg rename to packages/ui/src/assets/file-icons/clojure.svg diff --git a/packages/desktop/src/assets/file-icons/cloudfoundry.svg b/packages/ui/src/assets/file-icons/cloudfoundry.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cloudfoundry.svg rename to packages/ui/src/assets/file-icons/cloudfoundry.svg diff --git a/packages/desktop/src/assets/file-icons/cmake.svg b/packages/ui/src/assets/file-icons/cmake.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cmake.svg rename to packages/ui/src/assets/file-icons/cmake.svg diff --git a/packages/desktop/src/assets/file-icons/coala.svg b/packages/ui/src/assets/file-icons/coala.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/coala.svg rename to packages/ui/src/assets/file-icons/coala.svg diff --git a/packages/desktop/src/assets/file-icons/cobol.svg b/packages/ui/src/assets/file-icons/cobol.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cobol.svg rename to packages/ui/src/assets/file-icons/cobol.svg diff --git a/packages/desktop/src/assets/file-icons/coconut.svg b/packages/ui/src/assets/file-icons/coconut.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/coconut.svg rename to packages/ui/src/assets/file-icons/coconut.svg diff --git a/packages/desktop/src/assets/file-icons/code-climate.svg b/packages/ui/src/assets/file-icons/code-climate.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/code-climate.svg rename to packages/ui/src/assets/file-icons/code-climate.svg diff --git a/packages/desktop/src/assets/file-icons/code-climate_light.svg b/packages/ui/src/assets/file-icons/code-climate_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/code-climate_light.svg rename to packages/ui/src/assets/file-icons/code-climate_light.svg diff --git a/packages/desktop/src/assets/file-icons/codecov.svg b/packages/ui/src/assets/file-icons/codecov.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/codecov.svg rename to packages/ui/src/assets/file-icons/codecov.svg diff --git a/packages/desktop/src/assets/file-icons/codeowners.svg b/packages/ui/src/assets/file-icons/codeowners.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/codeowners.svg rename to packages/ui/src/assets/file-icons/codeowners.svg diff --git a/packages/desktop/src/assets/file-icons/coderabbit-ai.svg b/packages/ui/src/assets/file-icons/coderabbit-ai.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/coderabbit-ai.svg rename to packages/ui/src/assets/file-icons/coderabbit-ai.svg diff --git a/packages/desktop/src/assets/file-icons/coffee.svg b/packages/ui/src/assets/file-icons/coffee.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/coffee.svg rename to packages/ui/src/assets/file-icons/coffee.svg diff --git a/packages/desktop/src/assets/file-icons/coldfusion.svg b/packages/ui/src/assets/file-icons/coldfusion.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/coldfusion.svg rename to packages/ui/src/assets/file-icons/coldfusion.svg diff --git a/packages/desktop/src/assets/file-icons/coloredpetrinets.svg b/packages/ui/src/assets/file-icons/coloredpetrinets.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/coloredpetrinets.svg rename to packages/ui/src/assets/file-icons/coloredpetrinets.svg diff --git a/packages/desktop/src/assets/file-icons/command.svg b/packages/ui/src/assets/file-icons/command.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/command.svg rename to packages/ui/src/assets/file-icons/command.svg diff --git a/packages/desktop/src/assets/file-icons/commitizen.svg b/packages/ui/src/assets/file-icons/commitizen.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/commitizen.svg rename to packages/ui/src/assets/file-icons/commitizen.svg diff --git a/packages/desktop/src/assets/file-icons/commitlint.svg b/packages/ui/src/assets/file-icons/commitlint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/commitlint.svg rename to packages/ui/src/assets/file-icons/commitlint.svg diff --git a/packages/desktop/src/assets/file-icons/concourse.svg b/packages/ui/src/assets/file-icons/concourse.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/concourse.svg rename to packages/ui/src/assets/file-icons/concourse.svg diff --git a/packages/desktop/src/assets/file-icons/conduct.svg b/packages/ui/src/assets/file-icons/conduct.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/conduct.svg rename to packages/ui/src/assets/file-icons/conduct.svg diff --git a/packages/desktop/src/assets/file-icons/console.svg b/packages/ui/src/assets/file-icons/console.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/console.svg rename to packages/ui/src/assets/file-icons/console.svg diff --git a/packages/desktop/src/assets/file-icons/contentlayer.svg b/packages/ui/src/assets/file-icons/contentlayer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/contentlayer.svg rename to packages/ui/src/assets/file-icons/contentlayer.svg diff --git a/packages/desktop/src/assets/file-icons/context.svg b/packages/ui/src/assets/file-icons/context.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/context.svg rename to packages/ui/src/assets/file-icons/context.svg diff --git a/packages/desktop/src/assets/file-icons/contributing.svg b/packages/ui/src/assets/file-icons/contributing.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/contributing.svg rename to packages/ui/src/assets/file-icons/contributing.svg diff --git a/packages/desktop/src/assets/file-icons/controller.svg b/packages/ui/src/assets/file-icons/controller.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/controller.svg rename to packages/ui/src/assets/file-icons/controller.svg diff --git a/packages/desktop/src/assets/file-icons/copilot.svg b/packages/ui/src/assets/file-icons/copilot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/copilot.svg rename to packages/ui/src/assets/file-icons/copilot.svg diff --git a/packages/desktop/src/assets/file-icons/copilot_light.svg b/packages/ui/src/assets/file-icons/copilot_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/copilot_light.svg rename to packages/ui/src/assets/file-icons/copilot_light.svg diff --git a/packages/desktop/src/assets/file-icons/cpp.svg b/packages/ui/src/assets/file-icons/cpp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cpp.svg rename to packages/ui/src/assets/file-icons/cpp.svg diff --git a/packages/desktop/src/assets/file-icons/craco.svg b/packages/ui/src/assets/file-icons/craco.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/craco.svg rename to packages/ui/src/assets/file-icons/craco.svg diff --git a/packages/desktop/src/assets/file-icons/credits.svg b/packages/ui/src/assets/file-icons/credits.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/credits.svg rename to packages/ui/src/assets/file-icons/credits.svg diff --git a/packages/desktop/src/assets/file-icons/crystal.svg b/packages/ui/src/assets/file-icons/crystal.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/crystal.svg rename to packages/ui/src/assets/file-icons/crystal.svg diff --git a/packages/desktop/src/assets/file-icons/crystal_light.svg b/packages/ui/src/assets/file-icons/crystal_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/crystal_light.svg rename to packages/ui/src/assets/file-icons/crystal_light.svg diff --git a/packages/desktop/src/assets/file-icons/csharp.svg b/packages/ui/src/assets/file-icons/csharp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/csharp.svg rename to packages/ui/src/assets/file-icons/csharp.svg diff --git a/packages/desktop/src/assets/file-icons/css-map.svg b/packages/ui/src/assets/file-icons/css-map.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/css-map.svg rename to packages/ui/src/assets/file-icons/css-map.svg diff --git a/packages/desktop/src/assets/file-icons/css.svg b/packages/ui/src/assets/file-icons/css.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/css.svg rename to packages/ui/src/assets/file-icons/css.svg diff --git a/packages/desktop/src/assets/file-icons/cucumber.svg b/packages/ui/src/assets/file-icons/cucumber.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cucumber.svg rename to packages/ui/src/assets/file-icons/cucumber.svg diff --git a/packages/desktop/src/assets/file-icons/cuda.svg b/packages/ui/src/assets/file-icons/cuda.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cuda.svg rename to packages/ui/src/assets/file-icons/cuda.svg diff --git a/packages/desktop/src/assets/file-icons/cursor.svg b/packages/ui/src/assets/file-icons/cursor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cursor.svg rename to packages/ui/src/assets/file-icons/cursor.svg diff --git a/packages/desktop/src/assets/file-icons/cursor_light.svg b/packages/ui/src/assets/file-icons/cursor_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cursor_light.svg rename to packages/ui/src/assets/file-icons/cursor_light.svg diff --git a/packages/desktop/src/assets/file-icons/cypress.svg b/packages/ui/src/assets/file-icons/cypress.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/cypress.svg rename to packages/ui/src/assets/file-icons/cypress.svg diff --git a/packages/desktop/src/assets/file-icons/d.svg b/packages/ui/src/assets/file-icons/d.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/d.svg rename to packages/ui/src/assets/file-icons/d.svg diff --git a/packages/desktop/src/assets/file-icons/dart.svg b/packages/ui/src/assets/file-icons/dart.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dart.svg rename to packages/ui/src/assets/file-icons/dart.svg diff --git a/packages/desktop/src/assets/file-icons/dart_generated.svg b/packages/ui/src/assets/file-icons/dart_generated.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dart_generated.svg rename to packages/ui/src/assets/file-icons/dart_generated.svg diff --git a/packages/desktop/src/assets/file-icons/database.svg b/packages/ui/src/assets/file-icons/database.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/database.svg rename to packages/ui/src/assets/file-icons/database.svg diff --git a/packages/desktop/src/assets/file-icons/deepsource.svg b/packages/ui/src/assets/file-icons/deepsource.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/deepsource.svg rename to packages/ui/src/assets/file-icons/deepsource.svg diff --git a/packages/desktop/src/assets/file-icons/denizenscript.svg b/packages/ui/src/assets/file-icons/denizenscript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/denizenscript.svg rename to packages/ui/src/assets/file-icons/denizenscript.svg diff --git a/packages/desktop/src/assets/file-icons/deno.svg b/packages/ui/src/assets/file-icons/deno.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/deno.svg rename to packages/ui/src/assets/file-icons/deno.svg diff --git a/packages/desktop/src/assets/file-icons/deno_light.svg b/packages/ui/src/assets/file-icons/deno_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/deno_light.svg rename to packages/ui/src/assets/file-icons/deno_light.svg diff --git a/packages/desktop/src/assets/file-icons/dependabot.svg b/packages/ui/src/assets/file-icons/dependabot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dependabot.svg rename to packages/ui/src/assets/file-icons/dependabot.svg diff --git a/packages/desktop/src/assets/file-icons/dependencies-update.svg b/packages/ui/src/assets/file-icons/dependencies-update.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dependencies-update.svg rename to packages/ui/src/assets/file-icons/dependencies-update.svg diff --git a/packages/desktop/src/assets/file-icons/dhall.svg b/packages/ui/src/assets/file-icons/dhall.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dhall.svg rename to packages/ui/src/assets/file-icons/dhall.svg diff --git a/packages/desktop/src/assets/file-icons/diff.svg b/packages/ui/src/assets/file-icons/diff.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/diff.svg rename to packages/ui/src/assets/file-icons/diff.svg diff --git a/packages/desktop/src/assets/file-icons/dinophp.svg b/packages/ui/src/assets/file-icons/dinophp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dinophp.svg rename to packages/ui/src/assets/file-icons/dinophp.svg diff --git a/packages/desktop/src/assets/file-icons/disc.svg b/packages/ui/src/assets/file-icons/disc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/disc.svg rename to packages/ui/src/assets/file-icons/disc.svg diff --git a/packages/desktop/src/assets/file-icons/django.svg b/packages/ui/src/assets/file-icons/django.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/django.svg rename to packages/ui/src/assets/file-icons/django.svg diff --git a/packages/desktop/src/assets/file-icons/dll.svg b/packages/ui/src/assets/file-icons/dll.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dll.svg rename to packages/ui/src/assets/file-icons/dll.svg diff --git a/packages/desktop/src/assets/file-icons/docker.svg b/packages/ui/src/assets/file-icons/docker.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/docker.svg rename to packages/ui/src/assets/file-icons/docker.svg diff --git a/packages/desktop/src/assets/file-icons/doctex-installer.svg b/packages/ui/src/assets/file-icons/doctex-installer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/doctex-installer.svg rename to packages/ui/src/assets/file-icons/doctex-installer.svg diff --git a/packages/desktop/src/assets/file-icons/document.svg b/packages/ui/src/assets/file-icons/document.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/document.svg rename to packages/ui/src/assets/file-icons/document.svg diff --git a/packages/desktop/src/assets/file-icons/dotjs.svg b/packages/ui/src/assets/file-icons/dotjs.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dotjs.svg rename to packages/ui/src/assets/file-icons/dotjs.svg diff --git a/packages/desktop/src/assets/file-icons/drawio.svg b/packages/ui/src/assets/file-icons/drawio.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/drawio.svg rename to packages/ui/src/assets/file-icons/drawio.svg diff --git a/packages/desktop/src/assets/file-icons/drizzle.svg b/packages/ui/src/assets/file-icons/drizzle.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/drizzle.svg rename to packages/ui/src/assets/file-icons/drizzle.svg diff --git a/packages/desktop/src/assets/file-icons/drone.svg b/packages/ui/src/assets/file-icons/drone.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/drone.svg rename to packages/ui/src/assets/file-icons/drone.svg diff --git a/packages/desktop/src/assets/file-icons/drone_light.svg b/packages/ui/src/assets/file-icons/drone_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/drone_light.svg rename to packages/ui/src/assets/file-icons/drone_light.svg diff --git a/packages/desktop/src/assets/file-icons/duc.svg b/packages/ui/src/assets/file-icons/duc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/duc.svg rename to packages/ui/src/assets/file-icons/duc.svg diff --git a/packages/desktop/src/assets/file-icons/dune.svg b/packages/ui/src/assets/file-icons/dune.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/dune.svg rename to packages/ui/src/assets/file-icons/dune.svg diff --git a/packages/desktop/src/assets/file-icons/edge.svg b/packages/ui/src/assets/file-icons/edge.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/edge.svg rename to packages/ui/src/assets/file-icons/edge.svg diff --git a/packages/desktop/src/assets/file-icons/editorconfig.svg b/packages/ui/src/assets/file-icons/editorconfig.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/editorconfig.svg rename to packages/ui/src/assets/file-icons/editorconfig.svg diff --git a/packages/desktop/src/assets/file-icons/ejs.svg b/packages/ui/src/assets/file-icons/ejs.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ejs.svg rename to packages/ui/src/assets/file-icons/ejs.svg diff --git a/packages/desktop/src/assets/file-icons/elixir.svg b/packages/ui/src/assets/file-icons/elixir.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/elixir.svg rename to packages/ui/src/assets/file-icons/elixir.svg diff --git a/packages/desktop/src/assets/file-icons/elm.svg b/packages/ui/src/assets/file-icons/elm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/elm.svg rename to packages/ui/src/assets/file-icons/elm.svg diff --git a/packages/desktop/src/assets/file-icons/email.svg b/packages/ui/src/assets/file-icons/email.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/email.svg rename to packages/ui/src/assets/file-icons/email.svg diff --git a/packages/desktop/src/assets/file-icons/ember.svg b/packages/ui/src/assets/file-icons/ember.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ember.svg rename to packages/ui/src/assets/file-icons/ember.svg diff --git a/packages/desktop/src/assets/file-icons/epub.svg b/packages/ui/src/assets/file-icons/epub.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/epub.svg rename to packages/ui/src/assets/file-icons/epub.svg diff --git a/packages/desktop/src/assets/file-icons/erlang.svg b/packages/ui/src/assets/file-icons/erlang.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/erlang.svg rename to packages/ui/src/assets/file-icons/erlang.svg diff --git a/packages/desktop/src/assets/file-icons/esbuild.svg b/packages/ui/src/assets/file-icons/esbuild.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/esbuild.svg rename to packages/ui/src/assets/file-icons/esbuild.svg diff --git a/packages/desktop/src/assets/file-icons/eslint.svg b/packages/ui/src/assets/file-icons/eslint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/eslint.svg rename to packages/ui/src/assets/file-icons/eslint.svg diff --git a/packages/desktop/src/assets/file-icons/excalidraw.svg b/packages/ui/src/assets/file-icons/excalidraw.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/excalidraw.svg rename to packages/ui/src/assets/file-icons/excalidraw.svg diff --git a/packages/desktop/src/assets/file-icons/exe.svg b/packages/ui/src/assets/file-icons/exe.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/exe.svg rename to packages/ui/src/assets/file-icons/exe.svg diff --git a/packages/desktop/src/assets/file-icons/fastlane.svg b/packages/ui/src/assets/file-icons/fastlane.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/fastlane.svg rename to packages/ui/src/assets/file-icons/fastlane.svg diff --git a/packages/desktop/src/assets/file-icons/favicon.svg b/packages/ui/src/assets/file-icons/favicon.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/favicon.svg rename to packages/ui/src/assets/file-icons/favicon.svg diff --git a/packages/desktop/src/assets/file-icons/figma.svg b/packages/ui/src/assets/file-icons/figma.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/figma.svg rename to packages/ui/src/assets/file-icons/figma.svg diff --git a/packages/desktop/src/assets/file-icons/firebase.svg b/packages/ui/src/assets/file-icons/firebase.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/firebase.svg rename to packages/ui/src/assets/file-icons/firebase.svg diff --git a/packages/desktop/src/assets/file-icons/flash.svg b/packages/ui/src/assets/file-icons/flash.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/flash.svg rename to packages/ui/src/assets/file-icons/flash.svg diff --git a/packages/desktop/src/assets/file-icons/flow.svg b/packages/ui/src/assets/file-icons/flow.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/flow.svg rename to packages/ui/src/assets/file-icons/flow.svg diff --git a/packages/desktop/src/assets/file-icons/folder-admin-open.svg b/packages/ui/src/assets/file-icons/folder-admin-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-admin-open.svg rename to packages/ui/src/assets/file-icons/folder-admin-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-admin.svg b/packages/ui/src/assets/file-icons/folder-admin.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-admin.svg rename to packages/ui/src/assets/file-icons/folder-admin.svg diff --git a/packages/desktop/src/assets/file-icons/folder-android-open.svg b/packages/ui/src/assets/file-icons/folder-android-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-android-open.svg rename to packages/ui/src/assets/file-icons/folder-android-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-android.svg b/packages/ui/src/assets/file-icons/folder-android.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-android.svg rename to packages/ui/src/assets/file-icons/folder-android.svg diff --git a/packages/desktop/src/assets/file-icons/folder-angular-open.svg b/packages/ui/src/assets/file-icons/folder-angular-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-angular-open.svg rename to packages/ui/src/assets/file-icons/folder-angular-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-angular.svg b/packages/ui/src/assets/file-icons/folder-angular.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-angular.svg rename to packages/ui/src/assets/file-icons/folder-angular.svg diff --git a/packages/desktop/src/assets/file-icons/folder-animation-open.svg b/packages/ui/src/assets/file-icons/folder-animation-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-animation-open.svg rename to packages/ui/src/assets/file-icons/folder-animation-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-animation.svg b/packages/ui/src/assets/file-icons/folder-animation.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-animation.svg rename to packages/ui/src/assets/file-icons/folder-animation.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ansible-open.svg b/packages/ui/src/assets/file-icons/folder-ansible-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ansible-open.svg rename to packages/ui/src/assets/file-icons/folder-ansible-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ansible.svg b/packages/ui/src/assets/file-icons/folder-ansible.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ansible.svg rename to packages/ui/src/assets/file-icons/folder-ansible.svg diff --git a/packages/desktop/src/assets/file-icons/folder-api-open.svg b/packages/ui/src/assets/file-icons/folder-api-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-api-open.svg rename to packages/ui/src/assets/file-icons/folder-api-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-api.svg b/packages/ui/src/assets/file-icons/folder-api.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-api.svg rename to packages/ui/src/assets/file-icons/folder-api.svg diff --git a/packages/desktop/src/assets/file-icons/folder-apollo-open.svg b/packages/ui/src/assets/file-icons/folder-apollo-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-apollo-open.svg rename to packages/ui/src/assets/file-icons/folder-apollo-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-apollo.svg b/packages/ui/src/assets/file-icons/folder-apollo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-apollo.svg rename to packages/ui/src/assets/file-icons/folder-apollo.svg diff --git a/packages/desktop/src/assets/file-icons/folder-app-open.svg b/packages/ui/src/assets/file-icons/folder-app-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-app-open.svg rename to packages/ui/src/assets/file-icons/folder-app-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-app.svg b/packages/ui/src/assets/file-icons/folder-app.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-app.svg rename to packages/ui/src/assets/file-icons/folder-app.svg diff --git a/packages/desktop/src/assets/file-icons/folder-archive-open.svg b/packages/ui/src/assets/file-icons/folder-archive-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-archive-open.svg rename to packages/ui/src/assets/file-icons/folder-archive-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-archive.svg b/packages/ui/src/assets/file-icons/folder-archive.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-archive.svg rename to packages/ui/src/assets/file-icons/folder-archive.svg diff --git a/packages/desktop/src/assets/file-icons/folder-astro-open.svg b/packages/ui/src/assets/file-icons/folder-astro-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-astro-open.svg rename to packages/ui/src/assets/file-icons/folder-astro-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-astro.svg b/packages/ui/src/assets/file-icons/folder-astro.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-astro.svg rename to packages/ui/src/assets/file-icons/folder-astro.svg diff --git a/packages/desktop/src/assets/file-icons/folder-atom-open.svg b/packages/ui/src/assets/file-icons/folder-atom-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-atom-open.svg rename to packages/ui/src/assets/file-icons/folder-atom-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-atom.svg b/packages/ui/src/assets/file-icons/folder-atom.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-atom.svg rename to packages/ui/src/assets/file-icons/folder-atom.svg diff --git a/packages/desktop/src/assets/file-icons/folder-attachment-open.svg b/packages/ui/src/assets/file-icons/folder-attachment-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-attachment-open.svg rename to packages/ui/src/assets/file-icons/folder-attachment-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-attachment.svg b/packages/ui/src/assets/file-icons/folder-attachment.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-attachment.svg rename to packages/ui/src/assets/file-icons/folder-attachment.svg diff --git a/packages/desktop/src/assets/file-icons/folder-audio-open.svg b/packages/ui/src/assets/file-icons/folder-audio-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-audio-open.svg rename to packages/ui/src/assets/file-icons/folder-audio-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-audio.svg b/packages/ui/src/assets/file-icons/folder-audio.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-audio.svg rename to packages/ui/src/assets/file-icons/folder-audio.svg diff --git a/packages/desktop/src/assets/file-icons/folder-aurelia-open.svg b/packages/ui/src/assets/file-icons/folder-aurelia-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-aurelia-open.svg rename to packages/ui/src/assets/file-icons/folder-aurelia-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-aurelia.svg b/packages/ui/src/assets/file-icons/folder-aurelia.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-aurelia.svg rename to packages/ui/src/assets/file-icons/folder-aurelia.svg diff --git a/packages/desktop/src/assets/file-icons/folder-aws-open.svg b/packages/ui/src/assets/file-icons/folder-aws-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-aws-open.svg rename to packages/ui/src/assets/file-icons/folder-aws-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-aws.svg b/packages/ui/src/assets/file-icons/folder-aws.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-aws.svg rename to packages/ui/src/assets/file-icons/folder-aws.svg diff --git a/packages/desktop/src/assets/file-icons/folder-azure-pipelines-open.svg b/packages/ui/src/assets/file-icons/folder-azure-pipelines-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-azure-pipelines-open.svg rename to packages/ui/src/assets/file-icons/folder-azure-pipelines-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-azure-pipelines.svg b/packages/ui/src/assets/file-icons/folder-azure-pipelines.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-azure-pipelines.svg rename to packages/ui/src/assets/file-icons/folder-azure-pipelines.svg diff --git a/packages/desktop/src/assets/file-icons/folder-backup-open.svg b/packages/ui/src/assets/file-icons/folder-backup-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-backup-open.svg rename to packages/ui/src/assets/file-icons/folder-backup-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-backup.svg b/packages/ui/src/assets/file-icons/folder-backup.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-backup.svg rename to packages/ui/src/assets/file-icons/folder-backup.svg diff --git a/packages/desktop/src/assets/file-icons/folder-base-open.svg b/packages/ui/src/assets/file-icons/folder-base-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-base-open.svg rename to packages/ui/src/assets/file-icons/folder-base-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-base.svg b/packages/ui/src/assets/file-icons/folder-base.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-base.svg rename to packages/ui/src/assets/file-icons/folder-base.svg diff --git a/packages/desktop/src/assets/file-icons/folder-batch-open.svg b/packages/ui/src/assets/file-icons/folder-batch-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-batch-open.svg rename to packages/ui/src/assets/file-icons/folder-batch-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-batch.svg b/packages/ui/src/assets/file-icons/folder-batch.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-batch.svg rename to packages/ui/src/assets/file-icons/folder-batch.svg diff --git a/packages/desktop/src/assets/file-icons/folder-benchmark-open.svg b/packages/ui/src/assets/file-icons/folder-benchmark-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-benchmark-open.svg rename to packages/ui/src/assets/file-icons/folder-benchmark-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-benchmark.svg b/packages/ui/src/assets/file-icons/folder-benchmark.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-benchmark.svg rename to packages/ui/src/assets/file-icons/folder-benchmark.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bibliography-open.svg b/packages/ui/src/assets/file-icons/folder-bibliography-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bibliography-open.svg rename to packages/ui/src/assets/file-icons/folder-bibliography-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bibliography.svg b/packages/ui/src/assets/file-icons/folder-bibliography.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bibliography.svg rename to packages/ui/src/assets/file-icons/folder-bibliography.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bicep-open.svg b/packages/ui/src/assets/file-icons/folder-bicep-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bicep-open.svg rename to packages/ui/src/assets/file-icons/folder-bicep-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bicep.svg b/packages/ui/src/assets/file-icons/folder-bicep.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bicep.svg rename to packages/ui/src/assets/file-icons/folder-bicep.svg diff --git a/packages/desktop/src/assets/file-icons/folder-blender-open.svg b/packages/ui/src/assets/file-icons/folder-blender-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-blender-open.svg rename to packages/ui/src/assets/file-icons/folder-blender-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-blender.svg b/packages/ui/src/assets/file-icons/folder-blender.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-blender.svg rename to packages/ui/src/assets/file-icons/folder-blender.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bloc-open.svg b/packages/ui/src/assets/file-icons/folder-bloc-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bloc-open.svg rename to packages/ui/src/assets/file-icons/folder-bloc-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bloc.svg b/packages/ui/src/assets/file-icons/folder-bloc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bloc.svg rename to packages/ui/src/assets/file-icons/folder-bloc.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bower-open.svg b/packages/ui/src/assets/file-icons/folder-bower-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bower-open.svg rename to packages/ui/src/assets/file-icons/folder-bower-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-bower.svg b/packages/ui/src/assets/file-icons/folder-bower.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-bower.svg rename to packages/ui/src/assets/file-icons/folder-bower.svg diff --git a/packages/desktop/src/assets/file-icons/folder-buildkite-open.svg b/packages/ui/src/assets/file-icons/folder-buildkite-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-buildkite-open.svg rename to packages/ui/src/assets/file-icons/folder-buildkite-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-buildkite.svg b/packages/ui/src/assets/file-icons/folder-buildkite.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-buildkite.svg rename to packages/ui/src/assets/file-icons/folder-buildkite.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cart-open.svg b/packages/ui/src/assets/file-icons/folder-cart-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cart-open.svg rename to packages/ui/src/assets/file-icons/folder-cart-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cart.svg b/packages/ui/src/assets/file-icons/folder-cart.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cart.svg rename to packages/ui/src/assets/file-icons/folder-cart.svg diff --git a/packages/desktop/src/assets/file-icons/folder-changesets-open.svg b/packages/ui/src/assets/file-icons/folder-changesets-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-changesets-open.svg rename to packages/ui/src/assets/file-icons/folder-changesets-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-changesets.svg b/packages/ui/src/assets/file-icons/folder-changesets.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-changesets.svg rename to packages/ui/src/assets/file-icons/folder-changesets.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ci-open.svg b/packages/ui/src/assets/file-icons/folder-ci-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ci-open.svg rename to packages/ui/src/assets/file-icons/folder-ci-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ci.svg b/packages/ui/src/assets/file-icons/folder-ci.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ci.svg rename to packages/ui/src/assets/file-icons/folder-ci.svg diff --git a/packages/desktop/src/assets/file-icons/folder-circleci-open.svg b/packages/ui/src/assets/file-icons/folder-circleci-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-circleci-open.svg rename to packages/ui/src/assets/file-icons/folder-circleci-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-circleci.svg b/packages/ui/src/assets/file-icons/folder-circleci.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-circleci.svg rename to packages/ui/src/assets/file-icons/folder-circleci.svg diff --git a/packages/desktop/src/assets/file-icons/folder-class-open.svg b/packages/ui/src/assets/file-icons/folder-class-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-class-open.svg rename to packages/ui/src/assets/file-icons/folder-class-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-class.svg b/packages/ui/src/assets/file-icons/folder-class.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-class.svg rename to packages/ui/src/assets/file-icons/folder-class.svg diff --git a/packages/desktop/src/assets/file-icons/folder-claude-open.svg b/packages/ui/src/assets/file-icons/folder-claude-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-claude-open.svg rename to packages/ui/src/assets/file-icons/folder-claude-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-claude.svg b/packages/ui/src/assets/file-icons/folder-claude.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-claude.svg rename to packages/ui/src/assets/file-icons/folder-claude.svg diff --git a/packages/desktop/src/assets/file-icons/folder-client-open.svg b/packages/ui/src/assets/file-icons/folder-client-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-client-open.svg rename to packages/ui/src/assets/file-icons/folder-client-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-client.svg b/packages/ui/src/assets/file-icons/folder-client.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-client.svg rename to packages/ui/src/assets/file-icons/folder-client.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cline-open.svg b/packages/ui/src/assets/file-icons/folder-cline-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cline-open.svg rename to packages/ui/src/assets/file-icons/folder-cline-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cline.svg b/packages/ui/src/assets/file-icons/folder-cline.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cline.svg rename to packages/ui/src/assets/file-icons/folder-cline.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cloud-functions-open.svg b/packages/ui/src/assets/file-icons/folder-cloud-functions-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cloud-functions-open.svg rename to packages/ui/src/assets/file-icons/folder-cloud-functions-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cloud-functions.svg b/packages/ui/src/assets/file-icons/folder-cloud-functions.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cloud-functions.svg rename to packages/ui/src/assets/file-icons/folder-cloud-functions.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cloudflare-open.svg b/packages/ui/src/assets/file-icons/folder-cloudflare-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cloudflare-open.svg rename to packages/ui/src/assets/file-icons/folder-cloudflare-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cloudflare.svg b/packages/ui/src/assets/file-icons/folder-cloudflare.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cloudflare.svg rename to packages/ui/src/assets/file-icons/folder-cloudflare.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cluster-open.svg b/packages/ui/src/assets/file-icons/folder-cluster-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cluster-open.svg rename to packages/ui/src/assets/file-icons/folder-cluster-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cluster.svg b/packages/ui/src/assets/file-icons/folder-cluster.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cluster.svg rename to packages/ui/src/assets/file-icons/folder-cluster.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cobol-open.svg b/packages/ui/src/assets/file-icons/folder-cobol-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cobol-open.svg rename to packages/ui/src/assets/file-icons/folder-cobol-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cobol.svg b/packages/ui/src/assets/file-icons/folder-cobol.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cobol.svg rename to packages/ui/src/assets/file-icons/folder-cobol.svg diff --git a/packages/desktop/src/assets/file-icons/folder-command-open.svg b/packages/ui/src/assets/file-icons/folder-command-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-command-open.svg rename to packages/ui/src/assets/file-icons/folder-command-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-command.svg b/packages/ui/src/assets/file-icons/folder-command.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-command.svg rename to packages/ui/src/assets/file-icons/folder-command.svg diff --git a/packages/desktop/src/assets/file-icons/folder-components-open.svg b/packages/ui/src/assets/file-icons/folder-components-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-components-open.svg rename to packages/ui/src/assets/file-icons/folder-components-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-components.svg b/packages/ui/src/assets/file-icons/folder-components.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-components.svg rename to packages/ui/src/assets/file-icons/folder-components.svg diff --git a/packages/desktop/src/assets/file-icons/folder-config-open.svg b/packages/ui/src/assets/file-icons/folder-config-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-config-open.svg rename to packages/ui/src/assets/file-icons/folder-config-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-config.svg b/packages/ui/src/assets/file-icons/folder-config.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-config.svg rename to packages/ui/src/assets/file-icons/folder-config.svg diff --git a/packages/desktop/src/assets/file-icons/folder-connection-open.svg b/packages/ui/src/assets/file-icons/folder-connection-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-connection-open.svg rename to packages/ui/src/assets/file-icons/folder-connection-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-connection.svg b/packages/ui/src/assets/file-icons/folder-connection.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-connection.svg rename to packages/ui/src/assets/file-icons/folder-connection.svg diff --git a/packages/desktop/src/assets/file-icons/folder-console-open.svg b/packages/ui/src/assets/file-icons/folder-console-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-console-open.svg rename to packages/ui/src/assets/file-icons/folder-console-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-console.svg b/packages/ui/src/assets/file-icons/folder-console.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-console.svg rename to packages/ui/src/assets/file-icons/folder-console.svg diff --git a/packages/desktop/src/assets/file-icons/folder-constant-open.svg b/packages/ui/src/assets/file-icons/folder-constant-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-constant-open.svg rename to packages/ui/src/assets/file-icons/folder-constant-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-constant.svg b/packages/ui/src/assets/file-icons/folder-constant.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-constant.svg rename to packages/ui/src/assets/file-icons/folder-constant.svg diff --git a/packages/desktop/src/assets/file-icons/folder-container-open.svg b/packages/ui/src/assets/file-icons/folder-container-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-container-open.svg rename to packages/ui/src/assets/file-icons/folder-container-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-container.svg b/packages/ui/src/assets/file-icons/folder-container.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-container.svg rename to packages/ui/src/assets/file-icons/folder-container.svg diff --git a/packages/desktop/src/assets/file-icons/folder-content-open.svg b/packages/ui/src/assets/file-icons/folder-content-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-content-open.svg rename to packages/ui/src/assets/file-icons/folder-content-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-content.svg b/packages/ui/src/assets/file-icons/folder-content.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-content.svg rename to packages/ui/src/assets/file-icons/folder-content.svg diff --git a/packages/desktop/src/assets/file-icons/folder-context-open.svg b/packages/ui/src/assets/file-icons/folder-context-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-context-open.svg rename to packages/ui/src/assets/file-icons/folder-context-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-context.svg b/packages/ui/src/assets/file-icons/folder-context.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-context.svg rename to packages/ui/src/assets/file-icons/folder-context.svg diff --git a/packages/desktop/src/assets/file-icons/folder-contract-open.svg b/packages/ui/src/assets/file-icons/folder-contract-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-contract-open.svg rename to packages/ui/src/assets/file-icons/folder-contract-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-contract.svg b/packages/ui/src/assets/file-icons/folder-contract.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-contract.svg rename to packages/ui/src/assets/file-icons/folder-contract.svg diff --git a/packages/desktop/src/assets/file-icons/folder-controller-open.svg b/packages/ui/src/assets/file-icons/folder-controller-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-controller-open.svg rename to packages/ui/src/assets/file-icons/folder-controller-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-controller.svg b/packages/ui/src/assets/file-icons/folder-controller.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-controller.svg rename to packages/ui/src/assets/file-icons/folder-controller.svg diff --git a/packages/desktop/src/assets/file-icons/folder-core-open.svg b/packages/ui/src/assets/file-icons/folder-core-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-core-open.svg rename to packages/ui/src/assets/file-icons/folder-core-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-core.svg b/packages/ui/src/assets/file-icons/folder-core.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-core.svg rename to packages/ui/src/assets/file-icons/folder-core.svg diff --git a/packages/desktop/src/assets/file-icons/folder-coverage-open.svg b/packages/ui/src/assets/file-icons/folder-coverage-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-coverage-open.svg rename to packages/ui/src/assets/file-icons/folder-coverage-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-coverage.svg b/packages/ui/src/assets/file-icons/folder-coverage.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-coverage.svg rename to packages/ui/src/assets/file-icons/folder-coverage.svg diff --git a/packages/desktop/src/assets/file-icons/folder-css-open.svg b/packages/ui/src/assets/file-icons/folder-css-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-css-open.svg rename to packages/ui/src/assets/file-icons/folder-css-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-css.svg b/packages/ui/src/assets/file-icons/folder-css.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-css.svg rename to packages/ui/src/assets/file-icons/folder-css.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cursor-open.svg b/packages/ui/src/assets/file-icons/folder-cursor-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cursor-open.svg rename to packages/ui/src/assets/file-icons/folder-cursor-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cursor-open_light.svg b/packages/ui/src/assets/file-icons/folder-cursor-open_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cursor-open_light.svg rename to packages/ui/src/assets/file-icons/folder-cursor-open_light.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cursor.svg b/packages/ui/src/assets/file-icons/folder-cursor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cursor.svg rename to packages/ui/src/assets/file-icons/folder-cursor.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cursor_light.svg b/packages/ui/src/assets/file-icons/folder-cursor_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cursor_light.svg rename to packages/ui/src/assets/file-icons/folder-cursor_light.svg diff --git a/packages/desktop/src/assets/file-icons/folder-custom-open.svg b/packages/ui/src/assets/file-icons/folder-custom-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-custom-open.svg rename to packages/ui/src/assets/file-icons/folder-custom-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-custom.svg b/packages/ui/src/assets/file-icons/folder-custom.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-custom.svg rename to packages/ui/src/assets/file-icons/folder-custom.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cypress-open.svg b/packages/ui/src/assets/file-icons/folder-cypress-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cypress-open.svg rename to packages/ui/src/assets/file-icons/folder-cypress-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-cypress.svg b/packages/ui/src/assets/file-icons/folder-cypress.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-cypress.svg rename to packages/ui/src/assets/file-icons/folder-cypress.svg diff --git a/packages/desktop/src/assets/file-icons/folder-dart-open.svg b/packages/ui/src/assets/file-icons/folder-dart-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-dart-open.svg rename to packages/ui/src/assets/file-icons/folder-dart-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-dart.svg b/packages/ui/src/assets/file-icons/folder-dart.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-dart.svg rename to packages/ui/src/assets/file-icons/folder-dart.svg diff --git a/packages/desktop/src/assets/file-icons/folder-database-open.svg b/packages/ui/src/assets/file-icons/folder-database-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-database-open.svg rename to packages/ui/src/assets/file-icons/folder-database-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-database.svg b/packages/ui/src/assets/file-icons/folder-database.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-database.svg rename to packages/ui/src/assets/file-icons/folder-database.svg diff --git a/packages/desktop/src/assets/file-icons/folder-debug-open.svg b/packages/ui/src/assets/file-icons/folder-debug-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-debug-open.svg rename to packages/ui/src/assets/file-icons/folder-debug-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-debug.svg b/packages/ui/src/assets/file-icons/folder-debug.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-debug.svg rename to packages/ui/src/assets/file-icons/folder-debug.svg diff --git a/packages/desktop/src/assets/file-icons/folder-decorators-open.svg b/packages/ui/src/assets/file-icons/folder-decorators-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-decorators-open.svg rename to packages/ui/src/assets/file-icons/folder-decorators-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-decorators.svg b/packages/ui/src/assets/file-icons/folder-decorators.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-decorators.svg rename to packages/ui/src/assets/file-icons/folder-decorators.svg diff --git a/packages/desktop/src/assets/file-icons/folder-delta-open.svg b/packages/ui/src/assets/file-icons/folder-delta-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-delta-open.svg rename to packages/ui/src/assets/file-icons/folder-delta-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-delta.svg b/packages/ui/src/assets/file-icons/folder-delta.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-delta.svg rename to packages/ui/src/assets/file-icons/folder-delta.svg diff --git a/packages/desktop/src/assets/file-icons/folder-desktop-open.svg b/packages/ui/src/assets/file-icons/folder-desktop-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-desktop-open.svg rename to packages/ui/src/assets/file-icons/folder-desktop-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-desktop.svg b/packages/ui/src/assets/file-icons/folder-desktop.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-desktop.svg rename to packages/ui/src/assets/file-icons/folder-desktop.svg diff --git a/packages/desktop/src/assets/file-icons/folder-directive-open.svg b/packages/ui/src/assets/file-icons/folder-directive-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-directive-open.svg rename to packages/ui/src/assets/file-icons/folder-directive-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-directive.svg b/packages/ui/src/assets/file-icons/folder-directive.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-directive.svg rename to packages/ui/src/assets/file-icons/folder-directive.svg diff --git a/packages/desktop/src/assets/file-icons/folder-dist-open.svg b/packages/ui/src/assets/file-icons/folder-dist-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-dist-open.svg rename to packages/ui/src/assets/file-icons/folder-dist-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-dist.svg b/packages/ui/src/assets/file-icons/folder-dist.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-dist.svg rename to packages/ui/src/assets/file-icons/folder-dist.svg diff --git a/packages/desktop/src/assets/file-icons/folder-docker-open.svg b/packages/ui/src/assets/file-icons/folder-docker-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-docker-open.svg rename to packages/ui/src/assets/file-icons/folder-docker-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-docker.svg b/packages/ui/src/assets/file-icons/folder-docker.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-docker.svg rename to packages/ui/src/assets/file-icons/folder-docker.svg diff --git a/packages/desktop/src/assets/file-icons/folder-docs-open.svg b/packages/ui/src/assets/file-icons/folder-docs-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-docs-open.svg rename to packages/ui/src/assets/file-icons/folder-docs-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-docs.svg b/packages/ui/src/assets/file-icons/folder-docs.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-docs.svg rename to packages/ui/src/assets/file-icons/folder-docs.svg diff --git a/packages/desktop/src/assets/file-icons/folder-download-open.svg b/packages/ui/src/assets/file-icons/folder-download-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-download-open.svg rename to packages/ui/src/assets/file-icons/folder-download-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-download.svg b/packages/ui/src/assets/file-icons/folder-download.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-download.svg rename to packages/ui/src/assets/file-icons/folder-download.svg diff --git a/packages/desktop/src/assets/file-icons/folder-drizzle-open.svg b/packages/ui/src/assets/file-icons/folder-drizzle-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-drizzle-open.svg rename to packages/ui/src/assets/file-icons/folder-drizzle-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-drizzle.svg b/packages/ui/src/assets/file-icons/folder-drizzle.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-drizzle.svg rename to packages/ui/src/assets/file-icons/folder-drizzle.svg diff --git a/packages/desktop/src/assets/file-icons/folder-dump-open.svg b/packages/ui/src/assets/file-icons/folder-dump-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-dump-open.svg rename to packages/ui/src/assets/file-icons/folder-dump-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-dump.svg b/packages/ui/src/assets/file-icons/folder-dump.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-dump.svg rename to packages/ui/src/assets/file-icons/folder-dump.svg diff --git a/packages/desktop/src/assets/file-icons/folder-element-open.svg b/packages/ui/src/assets/file-icons/folder-element-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-element-open.svg rename to packages/ui/src/assets/file-icons/folder-element-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-element.svg b/packages/ui/src/assets/file-icons/folder-element.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-element.svg rename to packages/ui/src/assets/file-icons/folder-element.svg diff --git a/packages/desktop/src/assets/file-icons/folder-enum-open.svg b/packages/ui/src/assets/file-icons/folder-enum-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-enum-open.svg rename to packages/ui/src/assets/file-icons/folder-enum-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-enum.svg b/packages/ui/src/assets/file-icons/folder-enum.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-enum.svg rename to packages/ui/src/assets/file-icons/folder-enum.svg diff --git a/packages/desktop/src/assets/file-icons/folder-environment-open.svg b/packages/ui/src/assets/file-icons/folder-environment-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-environment-open.svg rename to packages/ui/src/assets/file-icons/folder-environment-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-environment.svg b/packages/ui/src/assets/file-icons/folder-environment.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-environment.svg rename to packages/ui/src/assets/file-icons/folder-environment.svg diff --git a/packages/desktop/src/assets/file-icons/folder-error-open.svg b/packages/ui/src/assets/file-icons/folder-error-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-error-open.svg rename to packages/ui/src/assets/file-icons/folder-error-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-error.svg b/packages/ui/src/assets/file-icons/folder-error.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-error.svg rename to packages/ui/src/assets/file-icons/folder-error.svg diff --git a/packages/desktop/src/assets/file-icons/folder-event-open.svg b/packages/ui/src/assets/file-icons/folder-event-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-event-open.svg rename to packages/ui/src/assets/file-icons/folder-event-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-event.svg b/packages/ui/src/assets/file-icons/folder-event.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-event.svg rename to packages/ui/src/assets/file-icons/folder-event.svg diff --git a/packages/desktop/src/assets/file-icons/folder-examples-open.svg b/packages/ui/src/assets/file-icons/folder-examples-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-examples-open.svg rename to packages/ui/src/assets/file-icons/folder-examples-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-examples.svg b/packages/ui/src/assets/file-icons/folder-examples.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-examples.svg rename to packages/ui/src/assets/file-icons/folder-examples.svg diff --git a/packages/desktop/src/assets/file-icons/folder-expo-open.svg b/packages/ui/src/assets/file-icons/folder-expo-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-expo-open.svg rename to packages/ui/src/assets/file-icons/folder-expo-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-expo.svg b/packages/ui/src/assets/file-icons/folder-expo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-expo.svg rename to packages/ui/src/assets/file-icons/folder-expo.svg diff --git a/packages/desktop/src/assets/file-icons/folder-export-open.svg b/packages/ui/src/assets/file-icons/folder-export-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-export-open.svg rename to packages/ui/src/assets/file-icons/folder-export-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-export.svg b/packages/ui/src/assets/file-icons/folder-export.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-export.svg rename to packages/ui/src/assets/file-icons/folder-export.svg diff --git a/packages/desktop/src/assets/file-icons/folder-fastlane-open.svg b/packages/ui/src/assets/file-icons/folder-fastlane-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-fastlane-open.svg rename to packages/ui/src/assets/file-icons/folder-fastlane-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-fastlane.svg b/packages/ui/src/assets/file-icons/folder-fastlane.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-fastlane.svg rename to packages/ui/src/assets/file-icons/folder-fastlane.svg diff --git a/packages/desktop/src/assets/file-icons/folder-favicon-open.svg b/packages/ui/src/assets/file-icons/folder-favicon-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-favicon-open.svg rename to packages/ui/src/assets/file-icons/folder-favicon-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-favicon.svg b/packages/ui/src/assets/file-icons/folder-favicon.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-favicon.svg rename to packages/ui/src/assets/file-icons/folder-favicon.svg diff --git a/packages/desktop/src/assets/file-icons/folder-firebase-open.svg b/packages/ui/src/assets/file-icons/folder-firebase-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-firebase-open.svg rename to packages/ui/src/assets/file-icons/folder-firebase-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-firebase.svg b/packages/ui/src/assets/file-icons/folder-firebase.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-firebase.svg rename to packages/ui/src/assets/file-icons/folder-firebase.svg diff --git a/packages/desktop/src/assets/file-icons/folder-firestore-open.svg b/packages/ui/src/assets/file-icons/folder-firestore-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-firestore-open.svg rename to packages/ui/src/assets/file-icons/folder-firestore-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-firestore.svg b/packages/ui/src/assets/file-icons/folder-firestore.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-firestore.svg rename to packages/ui/src/assets/file-icons/folder-firestore.svg diff --git a/packages/desktop/src/assets/file-icons/folder-flow-open.svg b/packages/ui/src/assets/file-icons/folder-flow-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-flow-open.svg rename to packages/ui/src/assets/file-icons/folder-flow-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-flow.svg b/packages/ui/src/assets/file-icons/folder-flow.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-flow.svg rename to packages/ui/src/assets/file-icons/folder-flow.svg diff --git a/packages/desktop/src/assets/file-icons/folder-flutter-open.svg b/packages/ui/src/assets/file-icons/folder-flutter-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-flutter-open.svg rename to packages/ui/src/assets/file-icons/folder-flutter-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-flutter.svg b/packages/ui/src/assets/file-icons/folder-flutter.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-flutter.svg rename to packages/ui/src/assets/file-icons/folder-flutter.svg diff --git a/packages/desktop/src/assets/file-icons/folder-font-open.svg b/packages/ui/src/assets/file-icons/folder-font-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-font-open.svg rename to packages/ui/src/assets/file-icons/folder-font-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-font.svg b/packages/ui/src/assets/file-icons/folder-font.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-font.svg rename to packages/ui/src/assets/file-icons/folder-font.svg diff --git a/packages/desktop/src/assets/file-icons/folder-forgejo-open.svg b/packages/ui/src/assets/file-icons/folder-forgejo-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-forgejo-open.svg rename to packages/ui/src/assets/file-icons/folder-forgejo-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-forgejo.svg b/packages/ui/src/assets/file-icons/folder-forgejo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-forgejo.svg rename to packages/ui/src/assets/file-icons/folder-forgejo.svg diff --git a/packages/desktop/src/assets/file-icons/folder-functions-open.svg b/packages/ui/src/assets/file-icons/folder-functions-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-functions-open.svg rename to packages/ui/src/assets/file-icons/folder-functions-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-functions.svg b/packages/ui/src/assets/file-icons/folder-functions.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-functions.svg rename to packages/ui/src/assets/file-icons/folder-functions.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gamemaker-open.svg b/packages/ui/src/assets/file-icons/folder-gamemaker-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gamemaker-open.svg rename to packages/ui/src/assets/file-icons/folder-gamemaker-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gamemaker.svg b/packages/ui/src/assets/file-icons/folder-gamemaker.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gamemaker.svg rename to packages/ui/src/assets/file-icons/folder-gamemaker.svg diff --git a/packages/desktop/src/assets/file-icons/folder-generator-open.svg b/packages/ui/src/assets/file-icons/folder-generator-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-generator-open.svg rename to packages/ui/src/assets/file-icons/folder-generator-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-generator.svg b/packages/ui/src/assets/file-icons/folder-generator.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-generator.svg rename to packages/ui/src/assets/file-icons/folder-generator.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gh-workflows-open.svg b/packages/ui/src/assets/file-icons/folder-gh-workflows-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gh-workflows-open.svg rename to packages/ui/src/assets/file-icons/folder-gh-workflows-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gh-workflows.svg b/packages/ui/src/assets/file-icons/folder-gh-workflows.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gh-workflows.svg rename to packages/ui/src/assets/file-icons/folder-gh-workflows.svg diff --git a/packages/desktop/src/assets/file-icons/folder-git-open.svg b/packages/ui/src/assets/file-icons/folder-git-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-git-open.svg rename to packages/ui/src/assets/file-icons/folder-git-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-git.svg b/packages/ui/src/assets/file-icons/folder-git.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-git.svg rename to packages/ui/src/assets/file-icons/folder-git.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gitea-open.svg b/packages/ui/src/assets/file-icons/folder-gitea-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gitea-open.svg rename to packages/ui/src/assets/file-icons/folder-gitea-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gitea.svg b/packages/ui/src/assets/file-icons/folder-gitea.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gitea.svg rename to packages/ui/src/assets/file-icons/folder-gitea.svg diff --git a/packages/desktop/src/assets/file-icons/folder-github-open.svg b/packages/ui/src/assets/file-icons/folder-github-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-github-open.svg rename to packages/ui/src/assets/file-icons/folder-github-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-github.svg b/packages/ui/src/assets/file-icons/folder-github.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-github.svg rename to packages/ui/src/assets/file-icons/folder-github.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gitlab-open.svg b/packages/ui/src/assets/file-icons/folder-gitlab-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gitlab-open.svg rename to packages/ui/src/assets/file-icons/folder-gitlab-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gitlab.svg b/packages/ui/src/assets/file-icons/folder-gitlab.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gitlab.svg rename to packages/ui/src/assets/file-icons/folder-gitlab.svg diff --git a/packages/desktop/src/assets/file-icons/folder-global-open.svg b/packages/ui/src/assets/file-icons/folder-global-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-global-open.svg rename to packages/ui/src/assets/file-icons/folder-global-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-global.svg b/packages/ui/src/assets/file-icons/folder-global.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-global.svg rename to packages/ui/src/assets/file-icons/folder-global.svg diff --git a/packages/desktop/src/assets/file-icons/folder-godot-open.svg b/packages/ui/src/assets/file-icons/folder-godot-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-godot-open.svg rename to packages/ui/src/assets/file-icons/folder-godot-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-godot.svg b/packages/ui/src/assets/file-icons/folder-godot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-godot.svg rename to packages/ui/src/assets/file-icons/folder-godot.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gradle-open.svg b/packages/ui/src/assets/file-icons/folder-gradle-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gradle-open.svg rename to packages/ui/src/assets/file-icons/folder-gradle-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gradle.svg b/packages/ui/src/assets/file-icons/folder-gradle.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gradle.svg rename to packages/ui/src/assets/file-icons/folder-gradle.svg diff --git a/packages/desktop/src/assets/file-icons/folder-graphql-open.svg b/packages/ui/src/assets/file-icons/folder-graphql-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-graphql-open.svg rename to packages/ui/src/assets/file-icons/folder-graphql-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-graphql.svg b/packages/ui/src/assets/file-icons/folder-graphql.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-graphql.svg rename to packages/ui/src/assets/file-icons/folder-graphql.svg diff --git a/packages/desktop/src/assets/file-icons/folder-guard-open.svg b/packages/ui/src/assets/file-icons/folder-guard-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-guard-open.svg rename to packages/ui/src/assets/file-icons/folder-guard-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-guard.svg b/packages/ui/src/assets/file-icons/folder-guard.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-guard.svg rename to packages/ui/src/assets/file-icons/folder-guard.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gulp-open.svg b/packages/ui/src/assets/file-icons/folder-gulp-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gulp-open.svg rename to packages/ui/src/assets/file-icons/folder-gulp-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-gulp.svg b/packages/ui/src/assets/file-icons/folder-gulp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-gulp.svg rename to packages/ui/src/assets/file-icons/folder-gulp.svg diff --git a/packages/desktop/src/assets/file-icons/folder-helm-open.svg b/packages/ui/src/assets/file-icons/folder-helm-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-helm-open.svg rename to packages/ui/src/assets/file-icons/folder-helm-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-helm.svg b/packages/ui/src/assets/file-icons/folder-helm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-helm.svg rename to packages/ui/src/assets/file-icons/folder-helm.svg diff --git a/packages/desktop/src/assets/file-icons/folder-helper-open.svg b/packages/ui/src/assets/file-icons/folder-helper-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-helper-open.svg rename to packages/ui/src/assets/file-icons/folder-helper-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-helper.svg b/packages/ui/src/assets/file-icons/folder-helper.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-helper.svg rename to packages/ui/src/assets/file-icons/folder-helper.svg diff --git a/packages/desktop/src/assets/file-icons/folder-home-open.svg b/packages/ui/src/assets/file-icons/folder-home-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-home-open.svg rename to packages/ui/src/assets/file-icons/folder-home-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-home.svg b/packages/ui/src/assets/file-icons/folder-home.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-home.svg rename to packages/ui/src/assets/file-icons/folder-home.svg diff --git a/packages/desktop/src/assets/file-icons/folder-hook-open.svg b/packages/ui/src/assets/file-icons/folder-hook-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-hook-open.svg rename to packages/ui/src/assets/file-icons/folder-hook-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-hook.svg b/packages/ui/src/assets/file-icons/folder-hook.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-hook.svg rename to packages/ui/src/assets/file-icons/folder-hook.svg diff --git a/packages/desktop/src/assets/file-icons/folder-husky-open.svg b/packages/ui/src/assets/file-icons/folder-husky-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-husky-open.svg rename to packages/ui/src/assets/file-icons/folder-husky-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-husky.svg b/packages/ui/src/assets/file-icons/folder-husky.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-husky.svg rename to packages/ui/src/assets/file-icons/folder-husky.svg diff --git a/packages/desktop/src/assets/file-icons/folder-i18n-open.svg b/packages/ui/src/assets/file-icons/folder-i18n-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-i18n-open.svg rename to packages/ui/src/assets/file-icons/folder-i18n-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-i18n.svg b/packages/ui/src/assets/file-icons/folder-i18n.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-i18n.svg rename to packages/ui/src/assets/file-icons/folder-i18n.svg diff --git a/packages/desktop/src/assets/file-icons/folder-images-open.svg b/packages/ui/src/assets/file-icons/folder-images-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-images-open.svg rename to packages/ui/src/assets/file-icons/folder-images-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-images.svg b/packages/ui/src/assets/file-icons/folder-images.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-images.svg rename to packages/ui/src/assets/file-icons/folder-images.svg diff --git a/packages/desktop/src/assets/file-icons/folder-import-open.svg b/packages/ui/src/assets/file-icons/folder-import-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-import-open.svg rename to packages/ui/src/assets/file-icons/folder-import-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-import.svg b/packages/ui/src/assets/file-icons/folder-import.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-import.svg rename to packages/ui/src/assets/file-icons/folder-import.svg diff --git a/packages/desktop/src/assets/file-icons/folder-include-open.svg b/packages/ui/src/assets/file-icons/folder-include-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-include-open.svg rename to packages/ui/src/assets/file-icons/folder-include-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-include.svg b/packages/ui/src/assets/file-icons/folder-include.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-include.svg rename to packages/ui/src/assets/file-icons/folder-include.svg diff --git a/packages/desktop/src/assets/file-icons/folder-intellij-open.svg b/packages/ui/src/assets/file-icons/folder-intellij-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-intellij-open.svg rename to packages/ui/src/assets/file-icons/folder-intellij-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-intellij-open_light.svg b/packages/ui/src/assets/file-icons/folder-intellij-open_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-intellij-open_light.svg rename to packages/ui/src/assets/file-icons/folder-intellij-open_light.svg diff --git a/packages/desktop/src/assets/file-icons/folder-intellij.svg b/packages/ui/src/assets/file-icons/folder-intellij.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-intellij.svg rename to packages/ui/src/assets/file-icons/folder-intellij.svg diff --git a/packages/desktop/src/assets/file-icons/folder-intellij_light.svg b/packages/ui/src/assets/file-icons/folder-intellij_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-intellij_light.svg rename to packages/ui/src/assets/file-icons/folder-intellij_light.svg diff --git a/packages/desktop/src/assets/file-icons/folder-interceptor-open.svg b/packages/ui/src/assets/file-icons/folder-interceptor-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-interceptor-open.svg rename to packages/ui/src/assets/file-icons/folder-interceptor-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-interceptor.svg b/packages/ui/src/assets/file-icons/folder-interceptor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-interceptor.svg rename to packages/ui/src/assets/file-icons/folder-interceptor.svg diff --git a/packages/desktop/src/assets/file-icons/folder-interface-open.svg b/packages/ui/src/assets/file-icons/folder-interface-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-interface-open.svg rename to packages/ui/src/assets/file-icons/folder-interface-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-interface.svg b/packages/ui/src/assets/file-icons/folder-interface.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-interface.svg rename to packages/ui/src/assets/file-icons/folder-interface.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ios-open.svg b/packages/ui/src/assets/file-icons/folder-ios-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ios-open.svg rename to packages/ui/src/assets/file-icons/folder-ios-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ios.svg b/packages/ui/src/assets/file-icons/folder-ios.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ios.svg rename to packages/ui/src/assets/file-icons/folder-ios.svg diff --git a/packages/desktop/src/assets/file-icons/folder-java-open.svg b/packages/ui/src/assets/file-icons/folder-java-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-java-open.svg rename to packages/ui/src/assets/file-icons/folder-java-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-java.svg b/packages/ui/src/assets/file-icons/folder-java.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-java.svg rename to packages/ui/src/assets/file-icons/folder-java.svg diff --git a/packages/desktop/src/assets/file-icons/folder-javascript-open.svg b/packages/ui/src/assets/file-icons/folder-javascript-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-javascript-open.svg rename to packages/ui/src/assets/file-icons/folder-javascript-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-javascript.svg b/packages/ui/src/assets/file-icons/folder-javascript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-javascript.svg rename to packages/ui/src/assets/file-icons/folder-javascript.svg diff --git a/packages/desktop/src/assets/file-icons/folder-jinja-open.svg b/packages/ui/src/assets/file-icons/folder-jinja-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-jinja-open.svg rename to packages/ui/src/assets/file-icons/folder-jinja-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-jinja-open_light.svg b/packages/ui/src/assets/file-icons/folder-jinja-open_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-jinja-open_light.svg rename to packages/ui/src/assets/file-icons/folder-jinja-open_light.svg diff --git a/packages/desktop/src/assets/file-icons/folder-jinja.svg b/packages/ui/src/assets/file-icons/folder-jinja.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-jinja.svg rename to packages/ui/src/assets/file-icons/folder-jinja.svg diff --git a/packages/desktop/src/assets/file-icons/folder-jinja_light.svg b/packages/ui/src/assets/file-icons/folder-jinja_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-jinja_light.svg rename to packages/ui/src/assets/file-icons/folder-jinja_light.svg diff --git a/packages/desktop/src/assets/file-icons/folder-job-open.svg b/packages/ui/src/assets/file-icons/folder-job-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-job-open.svg rename to packages/ui/src/assets/file-icons/folder-job-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-job.svg b/packages/ui/src/assets/file-icons/folder-job.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-job.svg rename to packages/ui/src/assets/file-icons/folder-job.svg diff --git a/packages/desktop/src/assets/file-icons/folder-json-open.svg b/packages/ui/src/assets/file-icons/folder-json-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-json-open.svg rename to packages/ui/src/assets/file-icons/folder-json-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-json.svg b/packages/ui/src/assets/file-icons/folder-json.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-json.svg rename to packages/ui/src/assets/file-icons/folder-json.svg diff --git a/packages/desktop/src/assets/file-icons/folder-jupyter-open.svg b/packages/ui/src/assets/file-icons/folder-jupyter-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-jupyter-open.svg rename to packages/ui/src/assets/file-icons/folder-jupyter-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-jupyter.svg b/packages/ui/src/assets/file-icons/folder-jupyter.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-jupyter.svg rename to packages/ui/src/assets/file-icons/folder-jupyter.svg diff --git a/packages/desktop/src/assets/file-icons/folder-keys-open.svg b/packages/ui/src/assets/file-icons/folder-keys-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-keys-open.svg rename to packages/ui/src/assets/file-icons/folder-keys-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-keys.svg b/packages/ui/src/assets/file-icons/folder-keys.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-keys.svg rename to packages/ui/src/assets/file-icons/folder-keys.svg diff --git a/packages/desktop/src/assets/file-icons/folder-kubernetes-open.svg b/packages/ui/src/assets/file-icons/folder-kubernetes-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-kubernetes-open.svg rename to packages/ui/src/assets/file-icons/folder-kubernetes-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-kubernetes.svg b/packages/ui/src/assets/file-icons/folder-kubernetes.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-kubernetes.svg rename to packages/ui/src/assets/file-icons/folder-kubernetes.svg diff --git a/packages/desktop/src/assets/file-icons/folder-kusto-open.svg b/packages/ui/src/assets/file-icons/folder-kusto-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-kusto-open.svg rename to packages/ui/src/assets/file-icons/folder-kusto-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-kusto.svg b/packages/ui/src/assets/file-icons/folder-kusto.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-kusto.svg rename to packages/ui/src/assets/file-icons/folder-kusto.svg diff --git a/packages/desktop/src/assets/file-icons/folder-layout-open.svg b/packages/ui/src/assets/file-icons/folder-layout-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-layout-open.svg rename to packages/ui/src/assets/file-icons/folder-layout-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-layout.svg b/packages/ui/src/assets/file-icons/folder-layout.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-layout.svg rename to packages/ui/src/assets/file-icons/folder-layout.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lefthook-open.svg b/packages/ui/src/assets/file-icons/folder-lefthook-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lefthook-open.svg rename to packages/ui/src/assets/file-icons/folder-lefthook-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lefthook.svg b/packages/ui/src/assets/file-icons/folder-lefthook.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lefthook.svg rename to packages/ui/src/assets/file-icons/folder-lefthook.svg diff --git a/packages/desktop/src/assets/file-icons/folder-less-open.svg b/packages/ui/src/assets/file-icons/folder-less-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-less-open.svg rename to packages/ui/src/assets/file-icons/folder-less-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-less.svg b/packages/ui/src/assets/file-icons/folder-less.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-less.svg rename to packages/ui/src/assets/file-icons/folder-less.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lib-open.svg b/packages/ui/src/assets/file-icons/folder-lib-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lib-open.svg rename to packages/ui/src/assets/file-icons/folder-lib-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lib.svg b/packages/ui/src/assets/file-icons/folder-lib.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lib.svg rename to packages/ui/src/assets/file-icons/folder-lib.svg diff --git a/packages/desktop/src/assets/file-icons/folder-link-open.svg b/packages/ui/src/assets/file-icons/folder-link-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-link-open.svg rename to packages/ui/src/assets/file-icons/folder-link-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-link.svg b/packages/ui/src/assets/file-icons/folder-link.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-link.svg rename to packages/ui/src/assets/file-icons/folder-link.svg diff --git a/packages/desktop/src/assets/file-icons/folder-linux-open.svg b/packages/ui/src/assets/file-icons/folder-linux-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-linux-open.svg rename to packages/ui/src/assets/file-icons/folder-linux-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-linux.svg b/packages/ui/src/assets/file-icons/folder-linux.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-linux.svg rename to packages/ui/src/assets/file-icons/folder-linux.svg diff --git a/packages/desktop/src/assets/file-icons/folder-liquibase-open.svg b/packages/ui/src/assets/file-icons/folder-liquibase-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-liquibase-open.svg rename to packages/ui/src/assets/file-icons/folder-liquibase-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-liquibase.svg b/packages/ui/src/assets/file-icons/folder-liquibase.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-liquibase.svg rename to packages/ui/src/assets/file-icons/folder-liquibase.svg diff --git a/packages/desktop/src/assets/file-icons/folder-log-open.svg b/packages/ui/src/assets/file-icons/folder-log-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-log-open.svg rename to packages/ui/src/assets/file-icons/folder-log-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-log.svg b/packages/ui/src/assets/file-icons/folder-log.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-log.svg rename to packages/ui/src/assets/file-icons/folder-log.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lottie-open.svg b/packages/ui/src/assets/file-icons/folder-lottie-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lottie-open.svg rename to packages/ui/src/assets/file-icons/folder-lottie-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lottie.svg b/packages/ui/src/assets/file-icons/folder-lottie.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lottie.svg rename to packages/ui/src/assets/file-icons/folder-lottie.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lua-open.svg b/packages/ui/src/assets/file-icons/folder-lua-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lua-open.svg rename to packages/ui/src/assets/file-icons/folder-lua-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-lua.svg b/packages/ui/src/assets/file-icons/folder-lua.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-lua.svg rename to packages/ui/src/assets/file-icons/folder-lua.svg diff --git a/packages/desktop/src/assets/file-icons/folder-luau-open.svg b/packages/ui/src/assets/file-icons/folder-luau-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-luau-open.svg rename to packages/ui/src/assets/file-icons/folder-luau-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-luau.svg b/packages/ui/src/assets/file-icons/folder-luau.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-luau.svg rename to packages/ui/src/assets/file-icons/folder-luau.svg diff --git a/packages/desktop/src/assets/file-icons/folder-macos-open.svg b/packages/ui/src/assets/file-icons/folder-macos-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-macos-open.svg rename to packages/ui/src/assets/file-icons/folder-macos-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-macos.svg b/packages/ui/src/assets/file-icons/folder-macos.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-macos.svg rename to packages/ui/src/assets/file-icons/folder-macos.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mail-open.svg b/packages/ui/src/assets/file-icons/folder-mail-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mail-open.svg rename to packages/ui/src/assets/file-icons/folder-mail-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mail.svg b/packages/ui/src/assets/file-icons/folder-mail.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mail.svg rename to packages/ui/src/assets/file-icons/folder-mail.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mappings-open.svg b/packages/ui/src/assets/file-icons/folder-mappings-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mappings-open.svg rename to packages/ui/src/assets/file-icons/folder-mappings-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mappings.svg b/packages/ui/src/assets/file-icons/folder-mappings.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mappings.svg rename to packages/ui/src/assets/file-icons/folder-mappings.svg diff --git a/packages/desktop/src/assets/file-icons/folder-markdown-open.svg b/packages/ui/src/assets/file-icons/folder-markdown-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-markdown-open.svg rename to packages/ui/src/assets/file-icons/folder-markdown-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-markdown.svg b/packages/ui/src/assets/file-icons/folder-markdown.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-markdown.svg rename to packages/ui/src/assets/file-icons/folder-markdown.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mercurial-open.svg b/packages/ui/src/assets/file-icons/folder-mercurial-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mercurial-open.svg rename to packages/ui/src/assets/file-icons/folder-mercurial-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mercurial.svg b/packages/ui/src/assets/file-icons/folder-mercurial.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mercurial.svg rename to packages/ui/src/assets/file-icons/folder-mercurial.svg diff --git a/packages/desktop/src/assets/file-icons/folder-messages-open.svg b/packages/ui/src/assets/file-icons/folder-messages-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-messages-open.svg rename to packages/ui/src/assets/file-icons/folder-messages-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-messages.svg b/packages/ui/src/assets/file-icons/folder-messages.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-messages.svg rename to packages/ui/src/assets/file-icons/folder-messages.svg diff --git a/packages/desktop/src/assets/file-icons/folder-meta-open.svg b/packages/ui/src/assets/file-icons/folder-meta-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-meta-open.svg rename to packages/ui/src/assets/file-icons/folder-meta-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-meta.svg b/packages/ui/src/assets/file-icons/folder-meta.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-meta.svg rename to packages/ui/src/assets/file-icons/folder-meta.svg diff --git a/packages/desktop/src/assets/file-icons/folder-middleware-open.svg b/packages/ui/src/assets/file-icons/folder-middleware-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-middleware-open.svg rename to packages/ui/src/assets/file-icons/folder-middleware-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-middleware.svg b/packages/ui/src/assets/file-icons/folder-middleware.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-middleware.svg rename to packages/ui/src/assets/file-icons/folder-middleware.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mjml-open.svg b/packages/ui/src/assets/file-icons/folder-mjml-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mjml-open.svg rename to packages/ui/src/assets/file-icons/folder-mjml-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mjml.svg b/packages/ui/src/assets/file-icons/folder-mjml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mjml.svg rename to packages/ui/src/assets/file-icons/folder-mjml.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mobile-open.svg b/packages/ui/src/assets/file-icons/folder-mobile-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mobile-open.svg rename to packages/ui/src/assets/file-icons/folder-mobile-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mobile.svg b/packages/ui/src/assets/file-icons/folder-mobile.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mobile.svg rename to packages/ui/src/assets/file-icons/folder-mobile.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mock-open.svg b/packages/ui/src/assets/file-icons/folder-mock-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mock-open.svg rename to packages/ui/src/assets/file-icons/folder-mock-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mock.svg b/packages/ui/src/assets/file-icons/folder-mock.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mock.svg rename to packages/ui/src/assets/file-icons/folder-mock.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mojo-open.svg b/packages/ui/src/assets/file-icons/folder-mojo-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mojo-open.svg rename to packages/ui/src/assets/file-icons/folder-mojo-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-mojo.svg b/packages/ui/src/assets/file-icons/folder-mojo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-mojo.svg rename to packages/ui/src/assets/file-icons/folder-mojo.svg diff --git a/packages/desktop/src/assets/file-icons/folder-molecule-open.svg b/packages/ui/src/assets/file-icons/folder-molecule-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-molecule-open.svg rename to packages/ui/src/assets/file-icons/folder-molecule-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-molecule.svg b/packages/ui/src/assets/file-icons/folder-molecule.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-molecule.svg rename to packages/ui/src/assets/file-icons/folder-molecule.svg diff --git a/packages/desktop/src/assets/file-icons/folder-moon-open.svg b/packages/ui/src/assets/file-icons/folder-moon-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-moon-open.svg rename to packages/ui/src/assets/file-icons/folder-moon-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-moon.svg b/packages/ui/src/assets/file-icons/folder-moon.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-moon.svg rename to packages/ui/src/assets/file-icons/folder-moon.svg diff --git a/packages/desktop/src/assets/file-icons/folder-netlify-open.svg b/packages/ui/src/assets/file-icons/folder-netlify-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-netlify-open.svg rename to packages/ui/src/assets/file-icons/folder-netlify-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-netlify.svg b/packages/ui/src/assets/file-icons/folder-netlify.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-netlify.svg rename to packages/ui/src/assets/file-icons/folder-netlify.svg diff --git a/packages/desktop/src/assets/file-icons/folder-next-open.svg b/packages/ui/src/assets/file-icons/folder-next-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-next-open.svg rename to packages/ui/src/assets/file-icons/folder-next-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-next.svg b/packages/ui/src/assets/file-icons/folder-next.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-next.svg rename to packages/ui/src/assets/file-icons/folder-next.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ngrx-store-open.svg b/packages/ui/src/assets/file-icons/folder-ngrx-store-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ngrx-store-open.svg rename to packages/ui/src/assets/file-icons/folder-ngrx-store-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ngrx-store.svg b/packages/ui/src/assets/file-icons/folder-ngrx-store.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ngrx-store.svg rename to packages/ui/src/assets/file-icons/folder-ngrx-store.svg diff --git a/packages/desktop/src/assets/file-icons/folder-node-open.svg b/packages/ui/src/assets/file-icons/folder-node-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-node-open.svg rename to packages/ui/src/assets/file-icons/folder-node-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-node.svg b/packages/ui/src/assets/file-icons/folder-node.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-node.svg rename to packages/ui/src/assets/file-icons/folder-node.svg diff --git a/packages/desktop/src/assets/file-icons/folder-nuxt-open.svg b/packages/ui/src/assets/file-icons/folder-nuxt-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-nuxt-open.svg rename to packages/ui/src/assets/file-icons/folder-nuxt-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-nuxt.svg b/packages/ui/src/assets/file-icons/folder-nuxt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-nuxt.svg rename to packages/ui/src/assets/file-icons/folder-nuxt.svg diff --git a/packages/desktop/src/assets/file-icons/folder-obsidian-open.svg b/packages/ui/src/assets/file-icons/folder-obsidian-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-obsidian-open.svg rename to packages/ui/src/assets/file-icons/folder-obsidian-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-obsidian.svg b/packages/ui/src/assets/file-icons/folder-obsidian.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-obsidian.svg rename to packages/ui/src/assets/file-icons/folder-obsidian.svg diff --git a/packages/desktop/src/assets/file-icons/folder-open.svg b/packages/ui/src/assets/file-icons/folder-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-open.svg rename to packages/ui/src/assets/file-icons/folder-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-organism-open.svg b/packages/ui/src/assets/file-icons/folder-organism-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-organism-open.svg rename to packages/ui/src/assets/file-icons/folder-organism-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-organism.svg b/packages/ui/src/assets/file-icons/folder-organism.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-organism.svg rename to packages/ui/src/assets/file-icons/folder-organism.svg diff --git a/packages/desktop/src/assets/file-icons/folder-other-open.svg b/packages/ui/src/assets/file-icons/folder-other-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-other-open.svg rename to packages/ui/src/assets/file-icons/folder-other-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-other.svg b/packages/ui/src/assets/file-icons/folder-other.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-other.svg rename to packages/ui/src/assets/file-icons/folder-other.svg diff --git a/packages/desktop/src/assets/file-icons/folder-packages-open.svg b/packages/ui/src/assets/file-icons/folder-packages-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-packages-open.svg rename to packages/ui/src/assets/file-icons/folder-packages-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-packages.svg b/packages/ui/src/assets/file-icons/folder-packages.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-packages.svg rename to packages/ui/src/assets/file-icons/folder-packages.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pdf-open.svg b/packages/ui/src/assets/file-icons/folder-pdf-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pdf-open.svg rename to packages/ui/src/assets/file-icons/folder-pdf-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pdf.svg b/packages/ui/src/assets/file-icons/folder-pdf.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pdf.svg rename to packages/ui/src/assets/file-icons/folder-pdf.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pdm-open.svg b/packages/ui/src/assets/file-icons/folder-pdm-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pdm-open.svg rename to packages/ui/src/assets/file-icons/folder-pdm-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pdm.svg b/packages/ui/src/assets/file-icons/folder-pdm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pdm.svg rename to packages/ui/src/assets/file-icons/folder-pdm.svg diff --git a/packages/desktop/src/assets/file-icons/folder-php-open.svg b/packages/ui/src/assets/file-icons/folder-php-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-php-open.svg rename to packages/ui/src/assets/file-icons/folder-php-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-php.svg b/packages/ui/src/assets/file-icons/folder-php.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-php.svg rename to packages/ui/src/assets/file-icons/folder-php.svg diff --git a/packages/desktop/src/assets/file-icons/folder-phpmailer-open.svg b/packages/ui/src/assets/file-icons/folder-phpmailer-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-phpmailer-open.svg rename to packages/ui/src/assets/file-icons/folder-phpmailer-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-phpmailer.svg b/packages/ui/src/assets/file-icons/folder-phpmailer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-phpmailer.svg rename to packages/ui/src/assets/file-icons/folder-phpmailer.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pipe-open.svg b/packages/ui/src/assets/file-icons/folder-pipe-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pipe-open.svg rename to packages/ui/src/assets/file-icons/folder-pipe-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pipe.svg b/packages/ui/src/assets/file-icons/folder-pipe.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pipe.svg rename to packages/ui/src/assets/file-icons/folder-pipe.svg diff --git a/packages/desktop/src/assets/file-icons/folder-plastic-open.svg b/packages/ui/src/assets/file-icons/folder-plastic-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-plastic-open.svg rename to packages/ui/src/assets/file-icons/folder-plastic-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-plastic.svg b/packages/ui/src/assets/file-icons/folder-plastic.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-plastic.svg rename to packages/ui/src/assets/file-icons/folder-plastic.svg diff --git a/packages/desktop/src/assets/file-icons/folder-plugin-open.svg b/packages/ui/src/assets/file-icons/folder-plugin-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-plugin-open.svg rename to packages/ui/src/assets/file-icons/folder-plugin-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-plugin.svg b/packages/ui/src/assets/file-icons/folder-plugin.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-plugin.svg rename to packages/ui/src/assets/file-icons/folder-plugin.svg diff --git a/packages/desktop/src/assets/file-icons/folder-policy-open.svg b/packages/ui/src/assets/file-icons/folder-policy-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-policy-open.svg rename to packages/ui/src/assets/file-icons/folder-policy-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-policy.svg b/packages/ui/src/assets/file-icons/folder-policy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-policy.svg rename to packages/ui/src/assets/file-icons/folder-policy.svg diff --git a/packages/desktop/src/assets/file-icons/folder-powershell-open.svg b/packages/ui/src/assets/file-icons/folder-powershell-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-powershell-open.svg rename to packages/ui/src/assets/file-icons/folder-powershell-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-powershell.svg b/packages/ui/src/assets/file-icons/folder-powershell.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-powershell.svg rename to packages/ui/src/assets/file-icons/folder-powershell.svg diff --git a/packages/desktop/src/assets/file-icons/folder-prisma-open.svg b/packages/ui/src/assets/file-icons/folder-prisma-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-prisma-open.svg rename to packages/ui/src/assets/file-icons/folder-prisma-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-prisma.svg b/packages/ui/src/assets/file-icons/folder-prisma.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-prisma.svg rename to packages/ui/src/assets/file-icons/folder-prisma.svg diff --git a/packages/desktop/src/assets/file-icons/folder-private-open.svg b/packages/ui/src/assets/file-icons/folder-private-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-private-open.svg rename to packages/ui/src/assets/file-icons/folder-private-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-private.svg b/packages/ui/src/assets/file-icons/folder-private.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-private.svg rename to packages/ui/src/assets/file-icons/folder-private.svg diff --git a/packages/desktop/src/assets/file-icons/folder-project-open.svg b/packages/ui/src/assets/file-icons/folder-project-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-project-open.svg rename to packages/ui/src/assets/file-icons/folder-project-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-project.svg b/packages/ui/src/assets/file-icons/folder-project.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-project.svg rename to packages/ui/src/assets/file-icons/folder-project.svg diff --git a/packages/desktop/src/assets/file-icons/folder-prompts-open.svg b/packages/ui/src/assets/file-icons/folder-prompts-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-prompts-open.svg rename to packages/ui/src/assets/file-icons/folder-prompts-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-prompts.svg b/packages/ui/src/assets/file-icons/folder-prompts.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-prompts.svg rename to packages/ui/src/assets/file-icons/folder-prompts.svg diff --git a/packages/desktop/src/assets/file-icons/folder-proto-open.svg b/packages/ui/src/assets/file-icons/folder-proto-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-proto-open.svg rename to packages/ui/src/assets/file-icons/folder-proto-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-proto.svg b/packages/ui/src/assets/file-icons/folder-proto.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-proto.svg rename to packages/ui/src/assets/file-icons/folder-proto.svg diff --git a/packages/desktop/src/assets/file-icons/folder-public-open.svg b/packages/ui/src/assets/file-icons/folder-public-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-public-open.svg rename to packages/ui/src/assets/file-icons/folder-public-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-public.svg b/packages/ui/src/assets/file-icons/folder-public.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-public.svg rename to packages/ui/src/assets/file-icons/folder-public.svg diff --git a/packages/desktop/src/assets/file-icons/folder-python-open.svg b/packages/ui/src/assets/file-icons/folder-python-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-python-open.svg rename to packages/ui/src/assets/file-icons/folder-python-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-python.svg b/packages/ui/src/assets/file-icons/folder-python.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-python.svg rename to packages/ui/src/assets/file-icons/folder-python.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pytorch-open.svg b/packages/ui/src/assets/file-icons/folder-pytorch-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pytorch-open.svg rename to packages/ui/src/assets/file-icons/folder-pytorch-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-pytorch.svg b/packages/ui/src/assets/file-icons/folder-pytorch.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-pytorch.svg rename to packages/ui/src/assets/file-icons/folder-pytorch.svg diff --git a/packages/desktop/src/assets/file-icons/folder-quasar-open.svg b/packages/ui/src/assets/file-icons/folder-quasar-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-quasar-open.svg rename to packages/ui/src/assets/file-icons/folder-quasar-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-quasar.svg b/packages/ui/src/assets/file-icons/folder-quasar.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-quasar.svg rename to packages/ui/src/assets/file-icons/folder-quasar.svg diff --git a/packages/desktop/src/assets/file-icons/folder-queue-open.svg b/packages/ui/src/assets/file-icons/folder-queue-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-queue-open.svg rename to packages/ui/src/assets/file-icons/folder-queue-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-queue.svg b/packages/ui/src/assets/file-icons/folder-queue.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-queue.svg rename to packages/ui/src/assets/file-icons/folder-queue.svg diff --git a/packages/desktop/src/assets/file-icons/folder-react-components-open.svg b/packages/ui/src/assets/file-icons/folder-react-components-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-react-components-open.svg rename to packages/ui/src/assets/file-icons/folder-react-components-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-react-components.svg b/packages/ui/src/assets/file-icons/folder-react-components.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-react-components.svg rename to packages/ui/src/assets/file-icons/folder-react-components.svg diff --git a/packages/desktop/src/assets/file-icons/folder-redux-reducer-open.svg b/packages/ui/src/assets/file-icons/folder-redux-reducer-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-redux-reducer-open.svg rename to packages/ui/src/assets/file-icons/folder-redux-reducer-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-redux-reducer.svg b/packages/ui/src/assets/file-icons/folder-redux-reducer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-redux-reducer.svg rename to packages/ui/src/assets/file-icons/folder-redux-reducer.svg diff --git a/packages/desktop/src/assets/file-icons/folder-repository-open.svg b/packages/ui/src/assets/file-icons/folder-repository-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-repository-open.svg rename to packages/ui/src/assets/file-icons/folder-repository-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-repository.svg b/packages/ui/src/assets/file-icons/folder-repository.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-repository.svg rename to packages/ui/src/assets/file-icons/folder-repository.svg diff --git a/packages/desktop/src/assets/file-icons/folder-resolver-open.svg b/packages/ui/src/assets/file-icons/folder-resolver-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-resolver-open.svg rename to packages/ui/src/assets/file-icons/folder-resolver-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-resolver.svg b/packages/ui/src/assets/file-icons/folder-resolver.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-resolver.svg rename to packages/ui/src/assets/file-icons/folder-resolver.svg diff --git a/packages/desktop/src/assets/file-icons/folder-resource-open.svg b/packages/ui/src/assets/file-icons/folder-resource-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-resource-open.svg rename to packages/ui/src/assets/file-icons/folder-resource-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-resource.svg b/packages/ui/src/assets/file-icons/folder-resource.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-resource.svg rename to packages/ui/src/assets/file-icons/folder-resource.svg diff --git a/packages/desktop/src/assets/file-icons/folder-review-open.svg b/packages/ui/src/assets/file-icons/folder-review-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-review-open.svg rename to packages/ui/src/assets/file-icons/folder-review-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-review.svg b/packages/ui/src/assets/file-icons/folder-review.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-review.svg rename to packages/ui/src/assets/file-icons/folder-review.svg diff --git a/packages/desktop/src/assets/file-icons/folder-robot-open.svg b/packages/ui/src/assets/file-icons/folder-robot-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-robot-open.svg rename to packages/ui/src/assets/file-icons/folder-robot-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-robot.svg b/packages/ui/src/assets/file-icons/folder-robot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-robot.svg rename to packages/ui/src/assets/file-icons/folder-robot.svg diff --git a/packages/desktop/src/assets/file-icons/folder-routes-open.svg b/packages/ui/src/assets/file-icons/folder-routes-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-routes-open.svg rename to packages/ui/src/assets/file-icons/folder-routes-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-routes.svg b/packages/ui/src/assets/file-icons/folder-routes.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-routes.svg rename to packages/ui/src/assets/file-icons/folder-routes.svg diff --git a/packages/desktop/src/assets/file-icons/folder-rules-open.svg b/packages/ui/src/assets/file-icons/folder-rules-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-rules-open.svg rename to packages/ui/src/assets/file-icons/folder-rules-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-rules.svg b/packages/ui/src/assets/file-icons/folder-rules.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-rules.svg rename to packages/ui/src/assets/file-icons/folder-rules.svg diff --git a/packages/desktop/src/assets/file-icons/folder-rust-open.svg b/packages/ui/src/assets/file-icons/folder-rust-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-rust-open.svg rename to packages/ui/src/assets/file-icons/folder-rust-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-rust.svg b/packages/ui/src/assets/file-icons/folder-rust.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-rust.svg rename to packages/ui/src/assets/file-icons/folder-rust.svg diff --git a/packages/desktop/src/assets/file-icons/folder-sandbox-open.svg b/packages/ui/src/assets/file-icons/folder-sandbox-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-sandbox-open.svg rename to packages/ui/src/assets/file-icons/folder-sandbox-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-sandbox.svg b/packages/ui/src/assets/file-icons/folder-sandbox.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-sandbox.svg rename to packages/ui/src/assets/file-icons/folder-sandbox.svg diff --git a/packages/desktop/src/assets/file-icons/folder-sass-open.svg b/packages/ui/src/assets/file-icons/folder-sass-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-sass-open.svg rename to packages/ui/src/assets/file-icons/folder-sass-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-sass.svg b/packages/ui/src/assets/file-icons/folder-sass.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-sass.svg rename to packages/ui/src/assets/file-icons/folder-sass.svg diff --git a/packages/desktop/src/assets/file-icons/folder-scala-open.svg b/packages/ui/src/assets/file-icons/folder-scala-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-scala-open.svg rename to packages/ui/src/assets/file-icons/folder-scala-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-scala.svg b/packages/ui/src/assets/file-icons/folder-scala.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-scala.svg rename to packages/ui/src/assets/file-icons/folder-scala.svg diff --git a/packages/desktop/src/assets/file-icons/folder-scons-open.svg b/packages/ui/src/assets/file-icons/folder-scons-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-scons-open.svg rename to packages/ui/src/assets/file-icons/folder-scons-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-scons.svg b/packages/ui/src/assets/file-icons/folder-scons.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-scons.svg rename to packages/ui/src/assets/file-icons/folder-scons.svg diff --git a/packages/desktop/src/assets/file-icons/folder-scripts-open.svg b/packages/ui/src/assets/file-icons/folder-scripts-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-scripts-open.svg rename to packages/ui/src/assets/file-icons/folder-scripts-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-scripts.svg b/packages/ui/src/assets/file-icons/folder-scripts.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-scripts.svg rename to packages/ui/src/assets/file-icons/folder-scripts.svg diff --git a/packages/desktop/src/assets/file-icons/folder-secure-open.svg b/packages/ui/src/assets/file-icons/folder-secure-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-secure-open.svg rename to packages/ui/src/assets/file-icons/folder-secure-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-secure.svg b/packages/ui/src/assets/file-icons/folder-secure.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-secure.svg rename to packages/ui/src/assets/file-icons/folder-secure.svg diff --git a/packages/desktop/src/assets/file-icons/folder-seeders-open.svg b/packages/ui/src/assets/file-icons/folder-seeders-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-seeders-open.svg rename to packages/ui/src/assets/file-icons/folder-seeders-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-seeders.svg b/packages/ui/src/assets/file-icons/folder-seeders.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-seeders.svg rename to packages/ui/src/assets/file-icons/folder-seeders.svg diff --git a/packages/desktop/src/assets/file-icons/folder-server-open.svg b/packages/ui/src/assets/file-icons/folder-server-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-server-open.svg rename to packages/ui/src/assets/file-icons/folder-server-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-server.svg b/packages/ui/src/assets/file-icons/folder-server.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-server.svg rename to packages/ui/src/assets/file-icons/folder-server.svg diff --git a/packages/desktop/src/assets/file-icons/folder-serverless-open.svg b/packages/ui/src/assets/file-icons/folder-serverless-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-serverless-open.svg rename to packages/ui/src/assets/file-icons/folder-serverless-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-serverless.svg b/packages/ui/src/assets/file-icons/folder-serverless.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-serverless.svg rename to packages/ui/src/assets/file-icons/folder-serverless.svg diff --git a/packages/desktop/src/assets/file-icons/folder-shader-open.svg b/packages/ui/src/assets/file-icons/folder-shader-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-shader-open.svg rename to packages/ui/src/assets/file-icons/folder-shader-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-shader.svg b/packages/ui/src/assets/file-icons/folder-shader.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-shader.svg rename to packages/ui/src/assets/file-icons/folder-shader.svg diff --git a/packages/desktop/src/assets/file-icons/folder-shared-open.svg b/packages/ui/src/assets/file-icons/folder-shared-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-shared-open.svg rename to packages/ui/src/assets/file-icons/folder-shared-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-shared.svg b/packages/ui/src/assets/file-icons/folder-shared.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-shared.svg rename to packages/ui/src/assets/file-icons/folder-shared.svg diff --git a/packages/desktop/src/assets/file-icons/folder-snapcraft-open.svg b/packages/ui/src/assets/file-icons/folder-snapcraft-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-snapcraft-open.svg rename to packages/ui/src/assets/file-icons/folder-snapcraft-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-snapcraft.svg b/packages/ui/src/assets/file-icons/folder-snapcraft.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-snapcraft.svg rename to packages/ui/src/assets/file-icons/folder-snapcraft.svg diff --git a/packages/desktop/src/assets/file-icons/folder-snippet-open.svg b/packages/ui/src/assets/file-icons/folder-snippet-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-snippet-open.svg rename to packages/ui/src/assets/file-icons/folder-snippet-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-snippet.svg b/packages/ui/src/assets/file-icons/folder-snippet.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-snippet.svg rename to packages/ui/src/assets/file-icons/folder-snippet.svg diff --git a/packages/desktop/src/assets/file-icons/folder-src-open.svg b/packages/ui/src/assets/file-icons/folder-src-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-src-open.svg rename to packages/ui/src/assets/file-icons/folder-src-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-src-tauri-open.svg b/packages/ui/src/assets/file-icons/folder-src-tauri-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-src-tauri-open.svg rename to packages/ui/src/assets/file-icons/folder-src-tauri-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-src-tauri.svg b/packages/ui/src/assets/file-icons/folder-src-tauri.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-src-tauri.svg rename to packages/ui/src/assets/file-icons/folder-src-tauri.svg diff --git a/packages/desktop/src/assets/file-icons/folder-src.svg b/packages/ui/src/assets/file-icons/folder-src.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-src.svg rename to packages/ui/src/assets/file-icons/folder-src.svg diff --git a/packages/desktop/src/assets/file-icons/folder-stack-open.svg b/packages/ui/src/assets/file-icons/folder-stack-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-stack-open.svg rename to packages/ui/src/assets/file-icons/folder-stack-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-stack.svg b/packages/ui/src/assets/file-icons/folder-stack.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-stack.svg rename to packages/ui/src/assets/file-icons/folder-stack.svg diff --git a/packages/desktop/src/assets/file-icons/folder-stencil-open.svg b/packages/ui/src/assets/file-icons/folder-stencil-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-stencil-open.svg rename to packages/ui/src/assets/file-icons/folder-stencil-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-stencil.svg b/packages/ui/src/assets/file-icons/folder-stencil.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-stencil.svg rename to packages/ui/src/assets/file-icons/folder-stencil.svg diff --git a/packages/desktop/src/assets/file-icons/folder-store-open.svg b/packages/ui/src/assets/file-icons/folder-store-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-store-open.svg rename to packages/ui/src/assets/file-icons/folder-store-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-store.svg b/packages/ui/src/assets/file-icons/folder-store.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-store.svg rename to packages/ui/src/assets/file-icons/folder-store.svg diff --git a/packages/desktop/src/assets/file-icons/folder-storybook-open.svg b/packages/ui/src/assets/file-icons/folder-storybook-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-storybook-open.svg rename to packages/ui/src/assets/file-icons/folder-storybook-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-storybook.svg b/packages/ui/src/assets/file-icons/folder-storybook.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-storybook.svg rename to packages/ui/src/assets/file-icons/folder-storybook.svg diff --git a/packages/desktop/src/assets/file-icons/folder-stylus-open.svg b/packages/ui/src/assets/file-icons/folder-stylus-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-stylus-open.svg rename to packages/ui/src/assets/file-icons/folder-stylus-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-stylus.svg b/packages/ui/src/assets/file-icons/folder-stylus.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-stylus.svg rename to packages/ui/src/assets/file-icons/folder-stylus.svg diff --git a/packages/desktop/src/assets/file-icons/folder-sublime-open.svg b/packages/ui/src/assets/file-icons/folder-sublime-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-sublime-open.svg rename to packages/ui/src/assets/file-icons/folder-sublime-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-sublime.svg b/packages/ui/src/assets/file-icons/folder-sublime.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-sublime.svg rename to packages/ui/src/assets/file-icons/folder-sublime.svg diff --git a/packages/desktop/src/assets/file-icons/folder-supabase-open.svg b/packages/ui/src/assets/file-icons/folder-supabase-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-supabase-open.svg rename to packages/ui/src/assets/file-icons/folder-supabase-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-supabase.svg b/packages/ui/src/assets/file-icons/folder-supabase.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-supabase.svg rename to packages/ui/src/assets/file-icons/folder-supabase.svg diff --git a/packages/desktop/src/assets/file-icons/folder-svelte-open.svg b/packages/ui/src/assets/file-icons/folder-svelte-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-svelte-open.svg rename to packages/ui/src/assets/file-icons/folder-svelte-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-svelte.svg b/packages/ui/src/assets/file-icons/folder-svelte.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-svelte.svg rename to packages/ui/src/assets/file-icons/folder-svelte.svg diff --git a/packages/desktop/src/assets/file-icons/folder-svg-open.svg b/packages/ui/src/assets/file-icons/folder-svg-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-svg-open.svg rename to packages/ui/src/assets/file-icons/folder-svg-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-svg.svg b/packages/ui/src/assets/file-icons/folder-svg.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-svg.svg rename to packages/ui/src/assets/file-icons/folder-svg.svg diff --git a/packages/desktop/src/assets/file-icons/folder-syntax-open.svg b/packages/ui/src/assets/file-icons/folder-syntax-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-syntax-open.svg rename to packages/ui/src/assets/file-icons/folder-syntax-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-syntax.svg b/packages/ui/src/assets/file-icons/folder-syntax.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-syntax.svg rename to packages/ui/src/assets/file-icons/folder-syntax.svg diff --git a/packages/desktop/src/assets/file-icons/folder-target-open.svg b/packages/ui/src/assets/file-icons/folder-target-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-target-open.svg rename to packages/ui/src/assets/file-icons/folder-target-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-target.svg b/packages/ui/src/assets/file-icons/folder-target.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-target.svg rename to packages/ui/src/assets/file-icons/folder-target.svg diff --git a/packages/desktop/src/assets/file-icons/folder-taskfile-open.svg b/packages/ui/src/assets/file-icons/folder-taskfile-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-taskfile-open.svg rename to packages/ui/src/assets/file-icons/folder-taskfile-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-taskfile.svg b/packages/ui/src/assets/file-icons/folder-taskfile.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-taskfile.svg rename to packages/ui/src/assets/file-icons/folder-taskfile.svg diff --git a/packages/desktop/src/assets/file-icons/folder-tasks-open.svg b/packages/ui/src/assets/file-icons/folder-tasks-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-tasks-open.svg rename to packages/ui/src/assets/file-icons/folder-tasks-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-tasks.svg b/packages/ui/src/assets/file-icons/folder-tasks.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-tasks.svg rename to packages/ui/src/assets/file-icons/folder-tasks.svg diff --git a/packages/desktop/src/assets/file-icons/folder-television-open.svg b/packages/ui/src/assets/file-icons/folder-television-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-television-open.svg rename to packages/ui/src/assets/file-icons/folder-television-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-television.svg b/packages/ui/src/assets/file-icons/folder-television.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-television.svg rename to packages/ui/src/assets/file-icons/folder-television.svg diff --git a/packages/desktop/src/assets/file-icons/folder-temp-open.svg b/packages/ui/src/assets/file-icons/folder-temp-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-temp-open.svg rename to packages/ui/src/assets/file-icons/folder-temp-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-temp.svg b/packages/ui/src/assets/file-icons/folder-temp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-temp.svg rename to packages/ui/src/assets/file-icons/folder-temp.svg diff --git a/packages/desktop/src/assets/file-icons/folder-template-open.svg b/packages/ui/src/assets/file-icons/folder-template-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-template-open.svg rename to packages/ui/src/assets/file-icons/folder-template-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-template.svg b/packages/ui/src/assets/file-icons/folder-template.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-template.svg rename to packages/ui/src/assets/file-icons/folder-template.svg diff --git a/packages/desktop/src/assets/file-icons/folder-terraform-open.svg b/packages/ui/src/assets/file-icons/folder-terraform-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-terraform-open.svg rename to packages/ui/src/assets/file-icons/folder-terraform-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-terraform.svg b/packages/ui/src/assets/file-icons/folder-terraform.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-terraform.svg rename to packages/ui/src/assets/file-icons/folder-terraform.svg diff --git a/packages/desktop/src/assets/file-icons/folder-test-open.svg b/packages/ui/src/assets/file-icons/folder-test-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-test-open.svg rename to packages/ui/src/assets/file-icons/folder-test-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-test.svg b/packages/ui/src/assets/file-icons/folder-test.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-test.svg rename to packages/ui/src/assets/file-icons/folder-test.svg diff --git a/packages/desktop/src/assets/file-icons/folder-theme-open.svg b/packages/ui/src/assets/file-icons/folder-theme-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-theme-open.svg rename to packages/ui/src/assets/file-icons/folder-theme-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-theme.svg b/packages/ui/src/assets/file-icons/folder-theme.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-theme.svg rename to packages/ui/src/assets/file-icons/folder-theme.svg diff --git a/packages/desktop/src/assets/file-icons/folder-tools-open.svg b/packages/ui/src/assets/file-icons/folder-tools-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-tools-open.svg rename to packages/ui/src/assets/file-icons/folder-tools-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-tools.svg b/packages/ui/src/assets/file-icons/folder-tools.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-tools.svg rename to packages/ui/src/assets/file-icons/folder-tools.svg diff --git a/packages/desktop/src/assets/file-icons/folder-trash-open.svg b/packages/ui/src/assets/file-icons/folder-trash-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-trash-open.svg rename to packages/ui/src/assets/file-icons/folder-trash-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-trash.svg b/packages/ui/src/assets/file-icons/folder-trash.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-trash.svg rename to packages/ui/src/assets/file-icons/folder-trash.svg diff --git a/packages/desktop/src/assets/file-icons/folder-trigger-open.svg b/packages/ui/src/assets/file-icons/folder-trigger-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-trigger-open.svg rename to packages/ui/src/assets/file-icons/folder-trigger-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-trigger.svg b/packages/ui/src/assets/file-icons/folder-trigger.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-trigger.svg rename to packages/ui/src/assets/file-icons/folder-trigger.svg diff --git a/packages/desktop/src/assets/file-icons/folder-turborepo-open.svg b/packages/ui/src/assets/file-icons/folder-turborepo-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-turborepo-open.svg rename to packages/ui/src/assets/file-icons/folder-turborepo-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-turborepo.svg b/packages/ui/src/assets/file-icons/folder-turborepo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-turborepo.svg rename to packages/ui/src/assets/file-icons/folder-turborepo.svg diff --git a/packages/desktop/src/assets/file-icons/folder-typescript-open.svg b/packages/ui/src/assets/file-icons/folder-typescript-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-typescript-open.svg rename to packages/ui/src/assets/file-icons/folder-typescript-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-typescript.svg b/packages/ui/src/assets/file-icons/folder-typescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-typescript.svg rename to packages/ui/src/assets/file-icons/folder-typescript.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ui-open.svg b/packages/ui/src/assets/file-icons/folder-ui-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ui-open.svg rename to packages/ui/src/assets/file-icons/folder-ui-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-ui.svg b/packages/ui/src/assets/file-icons/folder-ui.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-ui.svg rename to packages/ui/src/assets/file-icons/folder-ui.svg diff --git a/packages/desktop/src/assets/file-icons/folder-unity-open.svg b/packages/ui/src/assets/file-icons/folder-unity-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-unity-open.svg rename to packages/ui/src/assets/file-icons/folder-unity-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-unity.svg b/packages/ui/src/assets/file-icons/folder-unity.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-unity.svg rename to packages/ui/src/assets/file-icons/folder-unity.svg diff --git a/packages/desktop/src/assets/file-icons/folder-update-open.svg b/packages/ui/src/assets/file-icons/folder-update-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-update-open.svg rename to packages/ui/src/assets/file-icons/folder-update-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-update.svg b/packages/ui/src/assets/file-icons/folder-update.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-update.svg rename to packages/ui/src/assets/file-icons/folder-update.svg diff --git a/packages/desktop/src/assets/file-icons/folder-upload-open.svg b/packages/ui/src/assets/file-icons/folder-upload-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-upload-open.svg rename to packages/ui/src/assets/file-icons/folder-upload-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-upload.svg b/packages/ui/src/assets/file-icons/folder-upload.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-upload.svg rename to packages/ui/src/assets/file-icons/folder-upload.svg diff --git a/packages/desktop/src/assets/file-icons/folder-utils-open.svg b/packages/ui/src/assets/file-icons/folder-utils-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-utils-open.svg rename to packages/ui/src/assets/file-icons/folder-utils-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-utils.svg b/packages/ui/src/assets/file-icons/folder-utils.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-utils.svg rename to packages/ui/src/assets/file-icons/folder-utils.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vercel-open.svg b/packages/ui/src/assets/file-icons/folder-vercel-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vercel-open.svg rename to packages/ui/src/assets/file-icons/folder-vercel-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vercel.svg b/packages/ui/src/assets/file-icons/folder-vercel.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vercel.svg rename to packages/ui/src/assets/file-icons/folder-vercel.svg diff --git a/packages/desktop/src/assets/file-icons/folder-verdaccio-open.svg b/packages/ui/src/assets/file-icons/folder-verdaccio-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-verdaccio-open.svg rename to packages/ui/src/assets/file-icons/folder-verdaccio-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-verdaccio.svg b/packages/ui/src/assets/file-icons/folder-verdaccio.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-verdaccio.svg rename to packages/ui/src/assets/file-icons/folder-verdaccio.svg diff --git a/packages/desktop/src/assets/file-icons/folder-video-open.svg b/packages/ui/src/assets/file-icons/folder-video-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-video-open.svg rename to packages/ui/src/assets/file-icons/folder-video-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-video.svg b/packages/ui/src/assets/file-icons/folder-video.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-video.svg rename to packages/ui/src/assets/file-icons/folder-video.svg diff --git a/packages/desktop/src/assets/file-icons/folder-views-open.svg b/packages/ui/src/assets/file-icons/folder-views-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-views-open.svg rename to packages/ui/src/assets/file-icons/folder-views-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-views.svg b/packages/ui/src/assets/file-icons/folder-views.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-views.svg rename to packages/ui/src/assets/file-icons/folder-views.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vm-open.svg b/packages/ui/src/assets/file-icons/folder-vm-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vm-open.svg rename to packages/ui/src/assets/file-icons/folder-vm-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vm.svg b/packages/ui/src/assets/file-icons/folder-vm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vm.svg rename to packages/ui/src/assets/file-icons/folder-vm.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vscode-open.svg b/packages/ui/src/assets/file-icons/folder-vscode-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vscode-open.svg rename to packages/ui/src/assets/file-icons/folder-vscode-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vscode.svg b/packages/ui/src/assets/file-icons/folder-vscode.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vscode.svg rename to packages/ui/src/assets/file-icons/folder-vscode.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vue-directives-open.svg b/packages/ui/src/assets/file-icons/folder-vue-directives-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vue-directives-open.svg rename to packages/ui/src/assets/file-icons/folder-vue-directives-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vue-directives.svg b/packages/ui/src/assets/file-icons/folder-vue-directives.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vue-directives.svg rename to packages/ui/src/assets/file-icons/folder-vue-directives.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vue-open.svg b/packages/ui/src/assets/file-icons/folder-vue-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vue-open.svg rename to packages/ui/src/assets/file-icons/folder-vue-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vue.svg b/packages/ui/src/assets/file-icons/folder-vue.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vue.svg rename to packages/ui/src/assets/file-icons/folder-vue.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vuepress-open.svg b/packages/ui/src/assets/file-icons/folder-vuepress-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vuepress-open.svg rename to packages/ui/src/assets/file-icons/folder-vuepress-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vuepress.svg b/packages/ui/src/assets/file-icons/folder-vuepress.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vuepress.svg rename to packages/ui/src/assets/file-icons/folder-vuepress.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vuex-store-open.svg b/packages/ui/src/assets/file-icons/folder-vuex-store-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vuex-store-open.svg rename to packages/ui/src/assets/file-icons/folder-vuex-store-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-vuex-store.svg b/packages/ui/src/assets/file-icons/folder-vuex-store.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-vuex-store.svg rename to packages/ui/src/assets/file-icons/folder-vuex-store.svg diff --git a/packages/desktop/src/assets/file-icons/folder-wakatime-open.svg b/packages/ui/src/assets/file-icons/folder-wakatime-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-wakatime-open.svg rename to packages/ui/src/assets/file-icons/folder-wakatime-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-wakatime.svg b/packages/ui/src/assets/file-icons/folder-wakatime.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-wakatime.svg rename to packages/ui/src/assets/file-icons/folder-wakatime.svg diff --git a/packages/desktop/src/assets/file-icons/folder-webpack-open.svg b/packages/ui/src/assets/file-icons/folder-webpack-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-webpack-open.svg rename to packages/ui/src/assets/file-icons/folder-webpack-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-webpack.svg b/packages/ui/src/assets/file-icons/folder-webpack.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-webpack.svg rename to packages/ui/src/assets/file-icons/folder-webpack.svg diff --git a/packages/desktop/src/assets/file-icons/folder-windows-open.svg b/packages/ui/src/assets/file-icons/folder-windows-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-windows-open.svg rename to packages/ui/src/assets/file-icons/folder-windows-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-windows.svg b/packages/ui/src/assets/file-icons/folder-windows.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-windows.svg rename to packages/ui/src/assets/file-icons/folder-windows.svg diff --git a/packages/desktop/src/assets/file-icons/folder-wordpress-open.svg b/packages/ui/src/assets/file-icons/folder-wordpress-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-wordpress-open.svg rename to packages/ui/src/assets/file-icons/folder-wordpress-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-wordpress.svg b/packages/ui/src/assets/file-icons/folder-wordpress.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-wordpress.svg rename to packages/ui/src/assets/file-icons/folder-wordpress.svg diff --git a/packages/desktop/src/assets/file-icons/folder-yarn-open.svg b/packages/ui/src/assets/file-icons/folder-yarn-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-yarn-open.svg rename to packages/ui/src/assets/file-icons/folder-yarn-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-yarn.svg b/packages/ui/src/assets/file-icons/folder-yarn.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-yarn.svg rename to packages/ui/src/assets/file-icons/folder-yarn.svg diff --git a/packages/desktop/src/assets/file-icons/folder-zeabur-open.svg b/packages/ui/src/assets/file-icons/folder-zeabur-open.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-zeabur-open.svg rename to packages/ui/src/assets/file-icons/folder-zeabur-open.svg diff --git a/packages/desktop/src/assets/file-icons/folder-zeabur.svg b/packages/ui/src/assets/file-icons/folder-zeabur.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder-zeabur.svg rename to packages/ui/src/assets/file-icons/folder-zeabur.svg diff --git a/packages/desktop/src/assets/file-icons/folder.svg b/packages/ui/src/assets/file-icons/folder.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/folder.svg rename to packages/ui/src/assets/file-icons/folder.svg diff --git a/packages/desktop/src/assets/file-icons/font.svg b/packages/ui/src/assets/file-icons/font.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/font.svg rename to packages/ui/src/assets/file-icons/font.svg diff --git a/packages/desktop/src/assets/file-icons/forth.svg b/packages/ui/src/assets/file-icons/forth.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/forth.svg rename to packages/ui/src/assets/file-icons/forth.svg diff --git a/packages/desktop/src/assets/file-icons/fortran.svg b/packages/ui/src/assets/file-icons/fortran.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/fortran.svg rename to packages/ui/src/assets/file-icons/fortran.svg diff --git a/packages/desktop/src/assets/file-icons/foxpro.svg b/packages/ui/src/assets/file-icons/foxpro.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/foxpro.svg rename to packages/ui/src/assets/file-icons/foxpro.svg diff --git a/packages/desktop/src/assets/file-icons/freemarker.svg b/packages/ui/src/assets/file-icons/freemarker.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/freemarker.svg rename to packages/ui/src/assets/file-icons/freemarker.svg diff --git a/packages/desktop/src/assets/file-icons/fsharp.svg b/packages/ui/src/assets/file-icons/fsharp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/fsharp.svg rename to packages/ui/src/assets/file-icons/fsharp.svg diff --git a/packages/desktop/src/assets/file-icons/fusebox.svg b/packages/ui/src/assets/file-icons/fusebox.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/fusebox.svg rename to packages/ui/src/assets/file-icons/fusebox.svg diff --git a/packages/desktop/src/assets/file-icons/gamemaker.svg b/packages/ui/src/assets/file-icons/gamemaker.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gamemaker.svg rename to packages/ui/src/assets/file-icons/gamemaker.svg diff --git a/packages/desktop/src/assets/file-icons/garden.svg b/packages/ui/src/assets/file-icons/garden.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/garden.svg rename to packages/ui/src/assets/file-icons/garden.svg diff --git a/packages/desktop/src/assets/file-icons/gatsby.svg b/packages/ui/src/assets/file-icons/gatsby.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gatsby.svg rename to packages/ui/src/assets/file-icons/gatsby.svg diff --git a/packages/desktop/src/assets/file-icons/gcp.svg b/packages/ui/src/assets/file-icons/gcp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gcp.svg rename to packages/ui/src/assets/file-icons/gcp.svg diff --git a/packages/desktop/src/assets/file-icons/gemfile.svg b/packages/ui/src/assets/file-icons/gemfile.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gemfile.svg rename to packages/ui/src/assets/file-icons/gemfile.svg diff --git a/packages/desktop/src/assets/file-icons/gemini-ai.svg b/packages/ui/src/assets/file-icons/gemini-ai.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gemini-ai.svg rename to packages/ui/src/assets/file-icons/gemini-ai.svg diff --git a/packages/desktop/src/assets/file-icons/gemini.svg b/packages/ui/src/assets/file-icons/gemini.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gemini.svg rename to packages/ui/src/assets/file-icons/gemini.svg diff --git a/packages/desktop/src/assets/file-icons/git.svg b/packages/ui/src/assets/file-icons/git.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/git.svg rename to packages/ui/src/assets/file-icons/git.svg diff --git a/packages/desktop/src/assets/file-icons/github-actions-workflow.svg b/packages/ui/src/assets/file-icons/github-actions-workflow.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/github-actions-workflow.svg rename to packages/ui/src/assets/file-icons/github-actions-workflow.svg diff --git a/packages/desktop/src/assets/file-icons/github-sponsors.svg b/packages/ui/src/assets/file-icons/github-sponsors.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/github-sponsors.svg rename to packages/ui/src/assets/file-icons/github-sponsors.svg diff --git a/packages/desktop/src/assets/file-icons/gitlab.svg b/packages/ui/src/assets/file-icons/gitlab.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gitlab.svg rename to packages/ui/src/assets/file-icons/gitlab.svg diff --git a/packages/desktop/src/assets/file-icons/gitpod.svg b/packages/ui/src/assets/file-icons/gitpod.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gitpod.svg rename to packages/ui/src/assets/file-icons/gitpod.svg diff --git a/packages/desktop/src/assets/file-icons/gleam.svg b/packages/ui/src/assets/file-icons/gleam.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gleam.svg rename to packages/ui/src/assets/file-icons/gleam.svg diff --git a/packages/desktop/src/assets/file-icons/gnuplot.svg b/packages/ui/src/assets/file-icons/gnuplot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gnuplot.svg rename to packages/ui/src/assets/file-icons/gnuplot.svg diff --git a/packages/desktop/src/assets/file-icons/go-mod.svg b/packages/ui/src/assets/file-icons/go-mod.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/go-mod.svg rename to packages/ui/src/assets/file-icons/go-mod.svg diff --git a/packages/desktop/src/assets/file-icons/go.svg b/packages/ui/src/assets/file-icons/go.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/go.svg rename to packages/ui/src/assets/file-icons/go.svg diff --git a/packages/desktop/src/assets/file-icons/go_gopher.svg b/packages/ui/src/assets/file-icons/go_gopher.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/go_gopher.svg rename to packages/ui/src/assets/file-icons/go_gopher.svg diff --git a/packages/desktop/src/assets/file-icons/godot-assets.svg b/packages/ui/src/assets/file-icons/godot-assets.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/godot-assets.svg rename to packages/ui/src/assets/file-icons/godot-assets.svg diff --git a/packages/desktop/src/assets/file-icons/godot.svg b/packages/ui/src/assets/file-icons/godot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/godot.svg rename to packages/ui/src/assets/file-icons/godot.svg diff --git a/packages/desktop/src/assets/file-icons/gradle.svg b/packages/ui/src/assets/file-icons/gradle.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gradle.svg rename to packages/ui/src/assets/file-icons/gradle.svg diff --git a/packages/desktop/src/assets/file-icons/grafana-alloy.svg b/packages/ui/src/assets/file-icons/grafana-alloy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/grafana-alloy.svg rename to packages/ui/src/assets/file-icons/grafana-alloy.svg diff --git a/packages/desktop/src/assets/file-icons/grain.svg b/packages/ui/src/assets/file-icons/grain.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/grain.svg rename to packages/ui/src/assets/file-icons/grain.svg diff --git a/packages/desktop/src/assets/file-icons/graphcool.svg b/packages/ui/src/assets/file-icons/graphcool.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/graphcool.svg rename to packages/ui/src/assets/file-icons/graphcool.svg diff --git a/packages/desktop/src/assets/file-icons/graphql.svg b/packages/ui/src/assets/file-icons/graphql.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/graphql.svg rename to packages/ui/src/assets/file-icons/graphql.svg diff --git a/packages/desktop/src/assets/file-icons/gridsome.svg b/packages/ui/src/assets/file-icons/gridsome.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gridsome.svg rename to packages/ui/src/assets/file-icons/gridsome.svg diff --git a/packages/desktop/src/assets/file-icons/groovy.svg b/packages/ui/src/assets/file-icons/groovy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/groovy.svg rename to packages/ui/src/assets/file-icons/groovy.svg diff --git a/packages/desktop/src/assets/file-icons/grunt.svg b/packages/ui/src/assets/file-icons/grunt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/grunt.svg rename to packages/ui/src/assets/file-icons/grunt.svg diff --git a/packages/desktop/src/assets/file-icons/gulp.svg b/packages/ui/src/assets/file-icons/gulp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/gulp.svg rename to packages/ui/src/assets/file-icons/gulp.svg diff --git a/packages/desktop/src/assets/file-icons/h.svg b/packages/ui/src/assets/file-icons/h.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/h.svg rename to packages/ui/src/assets/file-icons/h.svg diff --git a/packages/desktop/src/assets/file-icons/hack.svg b/packages/ui/src/assets/file-icons/hack.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hack.svg rename to packages/ui/src/assets/file-icons/hack.svg diff --git a/packages/desktop/src/assets/file-icons/hadolint.svg b/packages/ui/src/assets/file-icons/hadolint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hadolint.svg rename to packages/ui/src/assets/file-icons/hadolint.svg diff --git a/packages/desktop/src/assets/file-icons/haml.svg b/packages/ui/src/assets/file-icons/haml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/haml.svg rename to packages/ui/src/assets/file-icons/haml.svg diff --git a/packages/desktop/src/assets/file-icons/handlebars.svg b/packages/ui/src/assets/file-icons/handlebars.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/handlebars.svg rename to packages/ui/src/assets/file-icons/handlebars.svg diff --git a/packages/desktop/src/assets/file-icons/hardhat.svg b/packages/ui/src/assets/file-icons/hardhat.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hardhat.svg rename to packages/ui/src/assets/file-icons/hardhat.svg diff --git a/packages/desktop/src/assets/file-icons/harmonix.svg b/packages/ui/src/assets/file-icons/harmonix.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/harmonix.svg rename to packages/ui/src/assets/file-icons/harmonix.svg diff --git a/packages/desktop/src/assets/file-icons/haskell.svg b/packages/ui/src/assets/file-icons/haskell.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/haskell.svg rename to packages/ui/src/assets/file-icons/haskell.svg diff --git a/packages/desktop/src/assets/file-icons/haxe.svg b/packages/ui/src/assets/file-icons/haxe.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/haxe.svg rename to packages/ui/src/assets/file-icons/haxe.svg diff --git a/packages/desktop/src/assets/file-icons/hcl.svg b/packages/ui/src/assets/file-icons/hcl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hcl.svg rename to packages/ui/src/assets/file-icons/hcl.svg diff --git a/packages/desktop/src/assets/file-icons/hcl_light.svg b/packages/ui/src/assets/file-icons/hcl_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hcl_light.svg rename to packages/ui/src/assets/file-icons/hcl_light.svg diff --git a/packages/desktop/src/assets/file-icons/helm.svg b/packages/ui/src/assets/file-icons/helm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/helm.svg rename to packages/ui/src/assets/file-icons/helm.svg diff --git a/packages/desktop/src/assets/file-icons/heroku.svg b/packages/ui/src/assets/file-icons/heroku.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/heroku.svg rename to packages/ui/src/assets/file-icons/heroku.svg diff --git a/packages/desktop/src/assets/file-icons/hex.svg b/packages/ui/src/assets/file-icons/hex.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hex.svg rename to packages/ui/src/assets/file-icons/hex.svg diff --git a/packages/desktop/src/assets/file-icons/histoire.svg b/packages/ui/src/assets/file-icons/histoire.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/histoire.svg rename to packages/ui/src/assets/file-icons/histoire.svg diff --git a/packages/desktop/src/assets/file-icons/hjson.svg b/packages/ui/src/assets/file-icons/hjson.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hjson.svg rename to packages/ui/src/assets/file-icons/hjson.svg diff --git a/packages/desktop/src/assets/file-icons/horusec.svg b/packages/ui/src/assets/file-icons/horusec.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/horusec.svg rename to packages/ui/src/assets/file-icons/horusec.svg diff --git a/packages/desktop/src/assets/file-icons/hosts.svg b/packages/ui/src/assets/file-icons/hosts.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hosts.svg rename to packages/ui/src/assets/file-icons/hosts.svg diff --git a/packages/desktop/src/assets/file-icons/hosts_light.svg b/packages/ui/src/assets/file-icons/hosts_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hosts_light.svg rename to packages/ui/src/assets/file-icons/hosts_light.svg diff --git a/packages/desktop/src/assets/file-icons/hpp.svg b/packages/ui/src/assets/file-icons/hpp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hpp.svg rename to packages/ui/src/assets/file-icons/hpp.svg diff --git a/packages/desktop/src/assets/file-icons/html.svg b/packages/ui/src/assets/file-icons/html.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/html.svg rename to packages/ui/src/assets/file-icons/html.svg diff --git a/packages/desktop/src/assets/file-icons/http.svg b/packages/ui/src/assets/file-icons/http.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/http.svg rename to packages/ui/src/assets/file-icons/http.svg diff --git a/packages/desktop/src/assets/file-icons/huff.svg b/packages/ui/src/assets/file-icons/huff.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/huff.svg rename to packages/ui/src/assets/file-icons/huff.svg diff --git a/packages/desktop/src/assets/file-icons/huff_light.svg b/packages/ui/src/assets/file-icons/huff_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/huff_light.svg rename to packages/ui/src/assets/file-icons/huff_light.svg diff --git a/packages/desktop/src/assets/file-icons/hurl.svg b/packages/ui/src/assets/file-icons/hurl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/hurl.svg rename to packages/ui/src/assets/file-icons/hurl.svg diff --git a/packages/desktop/src/assets/file-icons/husky.svg b/packages/ui/src/assets/file-icons/husky.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/husky.svg rename to packages/ui/src/assets/file-icons/husky.svg diff --git a/packages/desktop/src/assets/file-icons/i18n.svg b/packages/ui/src/assets/file-icons/i18n.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/i18n.svg rename to packages/ui/src/assets/file-icons/i18n.svg diff --git a/packages/desktop/src/assets/file-icons/idris.svg b/packages/ui/src/assets/file-icons/idris.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/idris.svg rename to packages/ui/src/assets/file-icons/idris.svg diff --git a/packages/desktop/src/assets/file-icons/ifanr-cloud.svg b/packages/ui/src/assets/file-icons/ifanr-cloud.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ifanr-cloud.svg rename to packages/ui/src/assets/file-icons/ifanr-cloud.svg diff --git a/packages/desktop/src/assets/file-icons/image.svg b/packages/ui/src/assets/file-icons/image.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/image.svg rename to packages/ui/src/assets/file-icons/image.svg diff --git a/packages/desktop/src/assets/file-icons/imba.svg b/packages/ui/src/assets/file-icons/imba.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/imba.svg rename to packages/ui/src/assets/file-icons/imba.svg diff --git a/packages/desktop/src/assets/file-icons/installation.svg b/packages/ui/src/assets/file-icons/installation.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/installation.svg rename to packages/ui/src/assets/file-icons/installation.svg diff --git a/packages/desktop/src/assets/file-icons/ionic.svg b/packages/ui/src/assets/file-icons/ionic.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ionic.svg rename to packages/ui/src/assets/file-icons/ionic.svg diff --git a/packages/desktop/src/assets/file-icons/istanbul.svg b/packages/ui/src/assets/file-icons/istanbul.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/istanbul.svg rename to packages/ui/src/assets/file-icons/istanbul.svg diff --git a/packages/desktop/src/assets/file-icons/jar.svg b/packages/ui/src/assets/file-icons/jar.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jar.svg rename to packages/ui/src/assets/file-icons/jar.svg diff --git a/packages/desktop/src/assets/file-icons/java.svg b/packages/ui/src/assets/file-icons/java.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/java.svg rename to packages/ui/src/assets/file-icons/java.svg diff --git a/packages/desktop/src/assets/file-icons/javaclass.svg b/packages/ui/src/assets/file-icons/javaclass.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/javaclass.svg rename to packages/ui/src/assets/file-icons/javaclass.svg diff --git a/packages/desktop/src/assets/file-icons/javascript-map.svg b/packages/ui/src/assets/file-icons/javascript-map.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/javascript-map.svg rename to packages/ui/src/assets/file-icons/javascript-map.svg diff --git a/packages/desktop/src/assets/file-icons/javascript.svg b/packages/ui/src/assets/file-icons/javascript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/javascript.svg rename to packages/ui/src/assets/file-icons/javascript.svg diff --git a/packages/desktop/src/assets/file-icons/jenkins.svg b/packages/ui/src/assets/file-icons/jenkins.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jenkins.svg rename to packages/ui/src/assets/file-icons/jenkins.svg diff --git a/packages/desktop/src/assets/file-icons/jest.svg b/packages/ui/src/assets/file-icons/jest.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jest.svg rename to packages/ui/src/assets/file-icons/jest.svg diff --git a/packages/desktop/src/assets/file-icons/jinja.svg b/packages/ui/src/assets/file-icons/jinja.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jinja.svg rename to packages/ui/src/assets/file-icons/jinja.svg diff --git a/packages/desktop/src/assets/file-icons/jinja_light.svg b/packages/ui/src/assets/file-icons/jinja_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jinja_light.svg rename to packages/ui/src/assets/file-icons/jinja_light.svg diff --git a/packages/desktop/src/assets/file-icons/jsconfig.svg b/packages/ui/src/assets/file-icons/jsconfig.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jsconfig.svg rename to packages/ui/src/assets/file-icons/jsconfig.svg diff --git a/packages/desktop/src/assets/file-icons/json.svg b/packages/ui/src/assets/file-icons/json.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/json.svg rename to packages/ui/src/assets/file-icons/json.svg diff --git a/packages/desktop/src/assets/file-icons/jsr.svg b/packages/ui/src/assets/file-icons/jsr.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jsr.svg rename to packages/ui/src/assets/file-icons/jsr.svg diff --git a/packages/desktop/src/assets/file-icons/jsr_light.svg b/packages/ui/src/assets/file-icons/jsr_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jsr_light.svg rename to packages/ui/src/assets/file-icons/jsr_light.svg diff --git a/packages/desktop/src/assets/file-icons/julia.svg b/packages/ui/src/assets/file-icons/julia.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/julia.svg rename to packages/ui/src/assets/file-icons/julia.svg diff --git a/packages/desktop/src/assets/file-icons/jupyter.svg b/packages/ui/src/assets/file-icons/jupyter.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/jupyter.svg rename to packages/ui/src/assets/file-icons/jupyter.svg diff --git a/packages/desktop/src/assets/file-icons/just.svg b/packages/ui/src/assets/file-icons/just.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/just.svg rename to packages/ui/src/assets/file-icons/just.svg diff --git a/packages/desktop/src/assets/file-icons/karma.svg b/packages/ui/src/assets/file-icons/karma.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/karma.svg rename to packages/ui/src/assets/file-icons/karma.svg diff --git a/packages/desktop/src/assets/file-icons/kcl.svg b/packages/ui/src/assets/file-icons/kcl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/kcl.svg rename to packages/ui/src/assets/file-icons/kcl.svg diff --git a/packages/desktop/src/assets/file-icons/key.svg b/packages/ui/src/assets/file-icons/key.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/key.svg rename to packages/ui/src/assets/file-icons/key.svg diff --git a/packages/desktop/src/assets/file-icons/keystatic.svg b/packages/ui/src/assets/file-icons/keystatic.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/keystatic.svg rename to packages/ui/src/assets/file-icons/keystatic.svg diff --git a/packages/desktop/src/assets/file-icons/kivy.svg b/packages/ui/src/assets/file-icons/kivy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/kivy.svg rename to packages/ui/src/assets/file-icons/kivy.svg diff --git a/packages/desktop/src/assets/file-icons/kl.svg b/packages/ui/src/assets/file-icons/kl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/kl.svg rename to packages/ui/src/assets/file-icons/kl.svg diff --git a/packages/desktop/src/assets/file-icons/knip.svg b/packages/ui/src/assets/file-icons/knip.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/knip.svg rename to packages/ui/src/assets/file-icons/knip.svg diff --git a/packages/desktop/src/assets/file-icons/kotlin.svg b/packages/ui/src/assets/file-icons/kotlin.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/kotlin.svg rename to packages/ui/src/assets/file-icons/kotlin.svg diff --git a/packages/desktop/src/assets/file-icons/kubernetes.svg b/packages/ui/src/assets/file-icons/kubernetes.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/kubernetes.svg rename to packages/ui/src/assets/file-icons/kubernetes.svg diff --git a/packages/desktop/src/assets/file-icons/kusto.svg b/packages/ui/src/assets/file-icons/kusto.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/kusto.svg rename to packages/ui/src/assets/file-icons/kusto.svg diff --git a/packages/desktop/src/assets/file-icons/label.svg b/packages/ui/src/assets/file-icons/label.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/label.svg rename to packages/ui/src/assets/file-icons/label.svg diff --git a/packages/desktop/src/assets/file-icons/laravel.svg b/packages/ui/src/assets/file-icons/laravel.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/laravel.svg rename to packages/ui/src/assets/file-icons/laravel.svg diff --git a/packages/desktop/src/assets/file-icons/latexmk.svg b/packages/ui/src/assets/file-icons/latexmk.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/latexmk.svg rename to packages/ui/src/assets/file-icons/latexmk.svg diff --git a/packages/desktop/src/assets/file-icons/lbx.svg b/packages/ui/src/assets/file-icons/lbx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lbx.svg rename to packages/ui/src/assets/file-icons/lbx.svg diff --git a/packages/desktop/src/assets/file-icons/lefthook.svg b/packages/ui/src/assets/file-icons/lefthook.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lefthook.svg rename to packages/ui/src/assets/file-icons/lefthook.svg diff --git a/packages/desktop/src/assets/file-icons/lerna.svg b/packages/ui/src/assets/file-icons/lerna.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lerna.svg rename to packages/ui/src/assets/file-icons/lerna.svg diff --git a/packages/desktop/src/assets/file-icons/less.svg b/packages/ui/src/assets/file-icons/less.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/less.svg rename to packages/ui/src/assets/file-icons/less.svg diff --git a/packages/desktop/src/assets/file-icons/liara.svg b/packages/ui/src/assets/file-icons/liara.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/liara.svg rename to packages/ui/src/assets/file-icons/liara.svg diff --git a/packages/desktop/src/assets/file-icons/lib.svg b/packages/ui/src/assets/file-icons/lib.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lib.svg rename to packages/ui/src/assets/file-icons/lib.svg diff --git a/packages/desktop/src/assets/file-icons/lighthouse.svg b/packages/ui/src/assets/file-icons/lighthouse.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lighthouse.svg rename to packages/ui/src/assets/file-icons/lighthouse.svg diff --git a/packages/desktop/src/assets/file-icons/lilypond.svg b/packages/ui/src/assets/file-icons/lilypond.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lilypond.svg rename to packages/ui/src/assets/file-icons/lilypond.svg diff --git a/packages/desktop/src/assets/file-icons/lintstaged.svg b/packages/ui/src/assets/file-icons/lintstaged.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lintstaged.svg rename to packages/ui/src/assets/file-icons/lintstaged.svg diff --git a/packages/desktop/src/assets/file-icons/liquid.svg b/packages/ui/src/assets/file-icons/liquid.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/liquid.svg rename to packages/ui/src/assets/file-icons/liquid.svg diff --git a/packages/desktop/src/assets/file-icons/lisp.svg b/packages/ui/src/assets/file-icons/lisp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lisp.svg rename to packages/ui/src/assets/file-icons/lisp.svg diff --git a/packages/desktop/src/assets/file-icons/livescript.svg b/packages/ui/src/assets/file-icons/livescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/livescript.svg rename to packages/ui/src/assets/file-icons/livescript.svg diff --git a/packages/desktop/src/assets/file-icons/lock.svg b/packages/ui/src/assets/file-icons/lock.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lock.svg rename to packages/ui/src/assets/file-icons/lock.svg diff --git a/packages/desktop/src/assets/file-icons/log.svg b/packages/ui/src/assets/file-icons/log.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/log.svg rename to packages/ui/src/assets/file-icons/log.svg diff --git a/packages/desktop/src/assets/file-icons/lolcode.svg b/packages/ui/src/assets/file-icons/lolcode.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lolcode.svg rename to packages/ui/src/assets/file-icons/lolcode.svg diff --git a/packages/desktop/src/assets/file-icons/lottie.svg b/packages/ui/src/assets/file-icons/lottie.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lottie.svg rename to packages/ui/src/assets/file-icons/lottie.svg diff --git a/packages/desktop/src/assets/file-icons/lua.svg b/packages/ui/src/assets/file-icons/lua.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lua.svg rename to packages/ui/src/assets/file-icons/lua.svg diff --git a/packages/desktop/src/assets/file-icons/luau.svg b/packages/ui/src/assets/file-icons/luau.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/luau.svg rename to packages/ui/src/assets/file-icons/luau.svg diff --git a/packages/desktop/src/assets/file-icons/lyric.svg b/packages/ui/src/assets/file-icons/lyric.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/lyric.svg rename to packages/ui/src/assets/file-icons/lyric.svg diff --git a/packages/desktop/src/assets/file-icons/makefile.svg b/packages/ui/src/assets/file-icons/makefile.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/makefile.svg rename to packages/ui/src/assets/file-icons/makefile.svg diff --git a/packages/desktop/src/assets/file-icons/markdoc-config.svg b/packages/ui/src/assets/file-icons/markdoc-config.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/markdoc-config.svg rename to packages/ui/src/assets/file-icons/markdoc-config.svg diff --git a/packages/desktop/src/assets/file-icons/markdoc.svg b/packages/ui/src/assets/file-icons/markdoc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/markdoc.svg rename to packages/ui/src/assets/file-icons/markdoc.svg diff --git a/packages/desktop/src/assets/file-icons/markdown.svg b/packages/ui/src/assets/file-icons/markdown.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/markdown.svg rename to packages/ui/src/assets/file-icons/markdown.svg diff --git a/packages/desktop/src/assets/file-icons/markdownlint.svg b/packages/ui/src/assets/file-icons/markdownlint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/markdownlint.svg rename to packages/ui/src/assets/file-icons/markdownlint.svg diff --git a/packages/desktop/src/assets/file-icons/markojs.svg b/packages/ui/src/assets/file-icons/markojs.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/markojs.svg rename to packages/ui/src/assets/file-icons/markojs.svg diff --git a/packages/desktop/src/assets/file-icons/mathematica.svg b/packages/ui/src/assets/file-icons/mathematica.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mathematica.svg rename to packages/ui/src/assets/file-icons/mathematica.svg diff --git a/packages/desktop/src/assets/file-icons/matlab.svg b/packages/ui/src/assets/file-icons/matlab.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/matlab.svg rename to packages/ui/src/assets/file-icons/matlab.svg diff --git a/packages/desktop/src/assets/file-icons/maven.svg b/packages/ui/src/assets/file-icons/maven.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/maven.svg rename to packages/ui/src/assets/file-icons/maven.svg diff --git a/packages/desktop/src/assets/file-icons/mdsvex.svg b/packages/ui/src/assets/file-icons/mdsvex.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mdsvex.svg rename to packages/ui/src/assets/file-icons/mdsvex.svg diff --git a/packages/desktop/src/assets/file-icons/mdx.svg b/packages/ui/src/assets/file-icons/mdx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mdx.svg rename to packages/ui/src/assets/file-icons/mdx.svg diff --git a/packages/desktop/src/assets/file-icons/mercurial.svg b/packages/ui/src/assets/file-icons/mercurial.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mercurial.svg rename to packages/ui/src/assets/file-icons/mercurial.svg diff --git a/packages/desktop/src/assets/file-icons/merlin.svg b/packages/ui/src/assets/file-icons/merlin.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/merlin.svg rename to packages/ui/src/assets/file-icons/merlin.svg diff --git a/packages/desktop/src/assets/file-icons/mermaid.svg b/packages/ui/src/assets/file-icons/mermaid.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mermaid.svg rename to packages/ui/src/assets/file-icons/mermaid.svg diff --git a/packages/desktop/src/assets/file-icons/meson.svg b/packages/ui/src/assets/file-icons/meson.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/meson.svg rename to packages/ui/src/assets/file-icons/meson.svg diff --git a/packages/desktop/src/assets/file-icons/minecraft-fabric.svg b/packages/ui/src/assets/file-icons/minecraft-fabric.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/minecraft-fabric.svg rename to packages/ui/src/assets/file-icons/minecraft-fabric.svg diff --git a/packages/desktop/src/assets/file-icons/minecraft.svg b/packages/ui/src/assets/file-icons/minecraft.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/minecraft.svg rename to packages/ui/src/assets/file-icons/minecraft.svg diff --git a/packages/desktop/src/assets/file-icons/mint.svg b/packages/ui/src/assets/file-icons/mint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mint.svg rename to packages/ui/src/assets/file-icons/mint.svg diff --git a/packages/desktop/src/assets/file-icons/mjml.svg b/packages/ui/src/assets/file-icons/mjml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mjml.svg rename to packages/ui/src/assets/file-icons/mjml.svg diff --git a/packages/desktop/src/assets/file-icons/mocha.svg b/packages/ui/src/assets/file-icons/mocha.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mocha.svg rename to packages/ui/src/assets/file-icons/mocha.svg diff --git a/packages/desktop/src/assets/file-icons/modernizr.svg b/packages/ui/src/assets/file-icons/modernizr.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/modernizr.svg rename to packages/ui/src/assets/file-icons/modernizr.svg diff --git a/packages/desktop/src/assets/file-icons/mojo.svg b/packages/ui/src/assets/file-icons/mojo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mojo.svg rename to packages/ui/src/assets/file-icons/mojo.svg diff --git a/packages/desktop/src/assets/file-icons/moon.svg b/packages/ui/src/assets/file-icons/moon.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/moon.svg rename to packages/ui/src/assets/file-icons/moon.svg diff --git a/packages/desktop/src/assets/file-icons/moonscript.svg b/packages/ui/src/assets/file-icons/moonscript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/moonscript.svg rename to packages/ui/src/assets/file-icons/moonscript.svg diff --git a/packages/desktop/src/assets/file-icons/mxml.svg b/packages/ui/src/assets/file-icons/mxml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/mxml.svg rename to packages/ui/src/assets/file-icons/mxml.svg diff --git a/packages/desktop/src/assets/file-icons/nano-staged.svg b/packages/ui/src/assets/file-icons/nano-staged.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nano-staged.svg rename to packages/ui/src/assets/file-icons/nano-staged.svg diff --git a/packages/desktop/src/assets/file-icons/nano-staged_light.svg b/packages/ui/src/assets/file-icons/nano-staged_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nano-staged_light.svg rename to packages/ui/src/assets/file-icons/nano-staged_light.svg diff --git a/packages/desktop/src/assets/file-icons/ndst.svg b/packages/ui/src/assets/file-icons/ndst.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ndst.svg rename to packages/ui/src/assets/file-icons/ndst.svg diff --git a/packages/desktop/src/assets/file-icons/nest.svg b/packages/ui/src/assets/file-icons/nest.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nest.svg rename to packages/ui/src/assets/file-icons/nest.svg diff --git a/packages/desktop/src/assets/file-icons/netlify.svg b/packages/ui/src/assets/file-icons/netlify.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/netlify.svg rename to packages/ui/src/assets/file-icons/netlify.svg diff --git a/packages/desktop/src/assets/file-icons/netlify_light.svg b/packages/ui/src/assets/file-icons/netlify_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/netlify_light.svg rename to packages/ui/src/assets/file-icons/netlify_light.svg diff --git a/packages/desktop/src/assets/file-icons/next.svg b/packages/ui/src/assets/file-icons/next.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/next.svg rename to packages/ui/src/assets/file-icons/next.svg diff --git a/packages/desktop/src/assets/file-icons/next_light.svg b/packages/ui/src/assets/file-icons/next_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/next_light.svg rename to packages/ui/src/assets/file-icons/next_light.svg diff --git a/packages/desktop/src/assets/file-icons/nginx.svg b/packages/ui/src/assets/file-icons/nginx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nginx.svg rename to packages/ui/src/assets/file-icons/nginx.svg diff --git a/packages/desktop/src/assets/file-icons/ngrx-actions.svg b/packages/ui/src/assets/file-icons/ngrx-actions.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ngrx-actions.svg rename to packages/ui/src/assets/file-icons/ngrx-actions.svg diff --git a/packages/desktop/src/assets/file-icons/ngrx-effects.svg b/packages/ui/src/assets/file-icons/ngrx-effects.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ngrx-effects.svg rename to packages/ui/src/assets/file-icons/ngrx-effects.svg diff --git a/packages/desktop/src/assets/file-icons/ngrx-entity.svg b/packages/ui/src/assets/file-icons/ngrx-entity.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ngrx-entity.svg rename to packages/ui/src/assets/file-icons/ngrx-entity.svg diff --git a/packages/desktop/src/assets/file-icons/ngrx-reducer.svg b/packages/ui/src/assets/file-icons/ngrx-reducer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ngrx-reducer.svg rename to packages/ui/src/assets/file-icons/ngrx-reducer.svg diff --git a/packages/desktop/src/assets/file-icons/ngrx-selectors.svg b/packages/ui/src/assets/file-icons/ngrx-selectors.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ngrx-selectors.svg rename to packages/ui/src/assets/file-icons/ngrx-selectors.svg diff --git a/packages/desktop/src/assets/file-icons/ngrx-state.svg b/packages/ui/src/assets/file-icons/ngrx-state.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ngrx-state.svg rename to packages/ui/src/assets/file-icons/ngrx-state.svg diff --git a/packages/desktop/src/assets/file-icons/nim.svg b/packages/ui/src/assets/file-icons/nim.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nim.svg rename to packages/ui/src/assets/file-icons/nim.svg diff --git a/packages/desktop/src/assets/file-icons/nix.svg b/packages/ui/src/assets/file-icons/nix.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nix.svg rename to packages/ui/src/assets/file-icons/nix.svg diff --git a/packages/desktop/src/assets/file-icons/nodejs.svg b/packages/ui/src/assets/file-icons/nodejs.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nodejs.svg rename to packages/ui/src/assets/file-icons/nodejs.svg diff --git a/packages/desktop/src/assets/file-icons/nodejs_alt.svg b/packages/ui/src/assets/file-icons/nodejs_alt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nodejs_alt.svg rename to packages/ui/src/assets/file-icons/nodejs_alt.svg diff --git a/packages/desktop/src/assets/file-icons/nodemon.svg b/packages/ui/src/assets/file-icons/nodemon.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nodemon.svg rename to packages/ui/src/assets/file-icons/nodemon.svg diff --git a/packages/desktop/src/assets/file-icons/npm.svg b/packages/ui/src/assets/file-icons/npm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/npm.svg rename to packages/ui/src/assets/file-icons/npm.svg diff --git a/packages/desktop/src/assets/file-icons/nuget.svg b/packages/ui/src/assets/file-icons/nuget.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nuget.svg rename to packages/ui/src/assets/file-icons/nuget.svg diff --git a/packages/desktop/src/assets/file-icons/nunjucks.svg b/packages/ui/src/assets/file-icons/nunjucks.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nunjucks.svg rename to packages/ui/src/assets/file-icons/nunjucks.svg diff --git a/packages/desktop/src/assets/file-icons/nuxt.svg b/packages/ui/src/assets/file-icons/nuxt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nuxt.svg rename to packages/ui/src/assets/file-icons/nuxt.svg diff --git a/packages/desktop/src/assets/file-icons/nx.svg b/packages/ui/src/assets/file-icons/nx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/nx.svg rename to packages/ui/src/assets/file-icons/nx.svg diff --git a/packages/desktop/src/assets/file-icons/objective-c.svg b/packages/ui/src/assets/file-icons/objective-c.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/objective-c.svg rename to packages/ui/src/assets/file-icons/objective-c.svg diff --git a/packages/desktop/src/assets/file-icons/objective-cpp.svg b/packages/ui/src/assets/file-icons/objective-cpp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/objective-cpp.svg rename to packages/ui/src/assets/file-icons/objective-cpp.svg diff --git a/packages/desktop/src/assets/file-icons/ocaml.svg b/packages/ui/src/assets/file-icons/ocaml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ocaml.svg rename to packages/ui/src/assets/file-icons/ocaml.svg diff --git a/packages/desktop/src/assets/file-icons/odin.svg b/packages/ui/src/assets/file-icons/odin.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/odin.svg rename to packages/ui/src/assets/file-icons/odin.svg diff --git a/packages/desktop/src/assets/file-icons/opa.svg b/packages/ui/src/assets/file-icons/opa.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/opa.svg rename to packages/ui/src/assets/file-icons/opa.svg diff --git a/packages/desktop/src/assets/file-icons/opam.svg b/packages/ui/src/assets/file-icons/opam.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/opam.svg rename to packages/ui/src/assets/file-icons/opam.svg diff --git a/packages/desktop/src/assets/file-icons/openapi.svg b/packages/ui/src/assets/file-icons/openapi.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/openapi.svg rename to packages/ui/src/assets/file-icons/openapi.svg diff --git a/packages/desktop/src/assets/file-icons/openapi_light.svg b/packages/ui/src/assets/file-icons/openapi_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/openapi_light.svg rename to packages/ui/src/assets/file-icons/openapi_light.svg diff --git a/packages/desktop/src/assets/file-icons/otne.svg b/packages/ui/src/assets/file-icons/otne.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/otne.svg rename to packages/ui/src/assets/file-icons/otne.svg diff --git a/packages/desktop/src/assets/file-icons/oxlint.svg b/packages/ui/src/assets/file-icons/oxlint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/oxlint.svg rename to packages/ui/src/assets/file-icons/oxlint.svg diff --git a/packages/desktop/src/assets/file-icons/packship.svg b/packages/ui/src/assets/file-icons/packship.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/packship.svg rename to packages/ui/src/assets/file-icons/packship.svg diff --git a/packages/desktop/src/assets/file-icons/palette.svg b/packages/ui/src/assets/file-icons/palette.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/palette.svg rename to packages/ui/src/assets/file-icons/palette.svg diff --git a/packages/desktop/src/assets/file-icons/panda.svg b/packages/ui/src/assets/file-icons/panda.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/panda.svg rename to packages/ui/src/assets/file-icons/panda.svg diff --git a/packages/desktop/src/assets/file-icons/parcel.svg b/packages/ui/src/assets/file-icons/parcel.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/parcel.svg rename to packages/ui/src/assets/file-icons/parcel.svg diff --git a/packages/desktop/src/assets/file-icons/pascal.svg b/packages/ui/src/assets/file-icons/pascal.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pascal.svg rename to packages/ui/src/assets/file-icons/pascal.svg diff --git a/packages/desktop/src/assets/file-icons/pawn.svg b/packages/ui/src/assets/file-icons/pawn.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pawn.svg rename to packages/ui/src/assets/file-icons/pawn.svg diff --git a/packages/desktop/src/assets/file-icons/payload.svg b/packages/ui/src/assets/file-icons/payload.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/payload.svg rename to packages/ui/src/assets/file-icons/payload.svg diff --git a/packages/desktop/src/assets/file-icons/payload_light.svg b/packages/ui/src/assets/file-icons/payload_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/payload_light.svg rename to packages/ui/src/assets/file-icons/payload_light.svg diff --git a/packages/desktop/src/assets/file-icons/pdf.svg b/packages/ui/src/assets/file-icons/pdf.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pdf.svg rename to packages/ui/src/assets/file-icons/pdf.svg diff --git a/packages/desktop/src/assets/file-icons/pdm.svg b/packages/ui/src/assets/file-icons/pdm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pdm.svg rename to packages/ui/src/assets/file-icons/pdm.svg diff --git a/packages/desktop/src/assets/file-icons/percy.svg b/packages/ui/src/assets/file-icons/percy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/percy.svg rename to packages/ui/src/assets/file-icons/percy.svg diff --git a/packages/desktop/src/assets/file-icons/perl.svg b/packages/ui/src/assets/file-icons/perl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/perl.svg rename to packages/ui/src/assets/file-icons/perl.svg diff --git a/packages/desktop/src/assets/file-icons/php-cs-fixer.svg b/packages/ui/src/assets/file-icons/php-cs-fixer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/php-cs-fixer.svg rename to packages/ui/src/assets/file-icons/php-cs-fixer.svg diff --git a/packages/desktop/src/assets/file-icons/php.svg b/packages/ui/src/assets/file-icons/php.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/php.svg rename to packages/ui/src/assets/file-icons/php.svg diff --git a/packages/desktop/src/assets/file-icons/php_elephant.svg b/packages/ui/src/assets/file-icons/php_elephant.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/php_elephant.svg rename to packages/ui/src/assets/file-icons/php_elephant.svg diff --git a/packages/desktop/src/assets/file-icons/php_elephant_pink.svg b/packages/ui/src/assets/file-icons/php_elephant_pink.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/php_elephant_pink.svg rename to packages/ui/src/assets/file-icons/php_elephant_pink.svg diff --git a/packages/desktop/src/assets/file-icons/phpstan.svg b/packages/ui/src/assets/file-icons/phpstan.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/phpstan.svg rename to packages/ui/src/assets/file-icons/phpstan.svg diff --git a/packages/desktop/src/assets/file-icons/phpunit.svg b/packages/ui/src/assets/file-icons/phpunit.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/phpunit.svg rename to packages/ui/src/assets/file-icons/phpunit.svg diff --git a/packages/desktop/src/assets/file-icons/pinejs.svg b/packages/ui/src/assets/file-icons/pinejs.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pinejs.svg rename to packages/ui/src/assets/file-icons/pinejs.svg diff --git a/packages/desktop/src/assets/file-icons/pipeline.svg b/packages/ui/src/assets/file-icons/pipeline.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pipeline.svg rename to packages/ui/src/assets/file-icons/pipeline.svg diff --git a/packages/desktop/src/assets/file-icons/pkl.svg b/packages/ui/src/assets/file-icons/pkl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pkl.svg rename to packages/ui/src/assets/file-icons/pkl.svg diff --git a/packages/desktop/src/assets/file-icons/plastic.svg b/packages/ui/src/assets/file-icons/plastic.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/plastic.svg rename to packages/ui/src/assets/file-icons/plastic.svg diff --git a/packages/desktop/src/assets/file-icons/playwright.svg b/packages/ui/src/assets/file-icons/playwright.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/playwright.svg rename to packages/ui/src/assets/file-icons/playwright.svg diff --git a/packages/desktop/src/assets/file-icons/plop.svg b/packages/ui/src/assets/file-icons/plop.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/plop.svg rename to packages/ui/src/assets/file-icons/plop.svg diff --git a/packages/desktop/src/assets/file-icons/pm2-ecosystem.svg b/packages/ui/src/assets/file-icons/pm2-ecosystem.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pm2-ecosystem.svg rename to packages/ui/src/assets/file-icons/pm2-ecosystem.svg diff --git a/packages/desktop/src/assets/file-icons/pnpm.svg b/packages/ui/src/assets/file-icons/pnpm.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pnpm.svg rename to packages/ui/src/assets/file-icons/pnpm.svg diff --git a/packages/desktop/src/assets/file-icons/pnpm_light.svg b/packages/ui/src/assets/file-icons/pnpm_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pnpm_light.svg rename to packages/ui/src/assets/file-icons/pnpm_light.svg diff --git a/packages/desktop/src/assets/file-icons/poetry.svg b/packages/ui/src/assets/file-icons/poetry.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/poetry.svg rename to packages/ui/src/assets/file-icons/poetry.svg diff --git a/packages/desktop/src/assets/file-icons/postcss.svg b/packages/ui/src/assets/file-icons/postcss.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/postcss.svg rename to packages/ui/src/assets/file-icons/postcss.svg diff --git a/packages/desktop/src/assets/file-icons/posthtml.svg b/packages/ui/src/assets/file-icons/posthtml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/posthtml.svg rename to packages/ui/src/assets/file-icons/posthtml.svg diff --git a/packages/desktop/src/assets/file-icons/powerpoint.svg b/packages/ui/src/assets/file-icons/powerpoint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/powerpoint.svg rename to packages/ui/src/assets/file-icons/powerpoint.svg diff --git a/packages/desktop/src/assets/file-icons/powershell.svg b/packages/ui/src/assets/file-icons/powershell.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/powershell.svg rename to packages/ui/src/assets/file-icons/powershell.svg diff --git a/packages/desktop/src/assets/file-icons/pre-commit.svg b/packages/ui/src/assets/file-icons/pre-commit.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pre-commit.svg rename to packages/ui/src/assets/file-icons/pre-commit.svg diff --git a/packages/desktop/src/assets/file-icons/prettier.svg b/packages/ui/src/assets/file-icons/prettier.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/prettier.svg rename to packages/ui/src/assets/file-icons/prettier.svg diff --git a/packages/desktop/src/assets/file-icons/prisma.svg b/packages/ui/src/assets/file-icons/prisma.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/prisma.svg rename to packages/ui/src/assets/file-icons/prisma.svg diff --git a/packages/desktop/src/assets/file-icons/processing.svg b/packages/ui/src/assets/file-icons/processing.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/processing.svg rename to packages/ui/src/assets/file-icons/processing.svg diff --git a/packages/desktop/src/assets/file-icons/prolog.svg b/packages/ui/src/assets/file-icons/prolog.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/prolog.svg rename to packages/ui/src/assets/file-icons/prolog.svg diff --git a/packages/desktop/src/assets/file-icons/prompt.svg b/packages/ui/src/assets/file-icons/prompt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/prompt.svg rename to packages/ui/src/assets/file-icons/prompt.svg diff --git a/packages/desktop/src/assets/file-icons/proto.svg b/packages/ui/src/assets/file-icons/proto.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/proto.svg rename to packages/ui/src/assets/file-icons/proto.svg diff --git a/packages/desktop/src/assets/file-icons/protractor.svg b/packages/ui/src/assets/file-icons/protractor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/protractor.svg rename to packages/ui/src/assets/file-icons/protractor.svg diff --git a/packages/desktop/src/assets/file-icons/pug.svg b/packages/ui/src/assets/file-icons/pug.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pug.svg rename to packages/ui/src/assets/file-icons/pug.svg diff --git a/packages/desktop/src/assets/file-icons/puppet.svg b/packages/ui/src/assets/file-icons/puppet.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/puppet.svg rename to packages/ui/src/assets/file-icons/puppet.svg diff --git a/packages/desktop/src/assets/file-icons/puppeteer.svg b/packages/ui/src/assets/file-icons/puppeteer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/puppeteer.svg rename to packages/ui/src/assets/file-icons/puppeteer.svg diff --git a/packages/desktop/src/assets/file-icons/purescript.svg b/packages/ui/src/assets/file-icons/purescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/purescript.svg rename to packages/ui/src/assets/file-icons/purescript.svg diff --git a/packages/desktop/src/assets/file-icons/python-misc.svg b/packages/ui/src/assets/file-icons/python-misc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/python-misc.svg rename to packages/ui/src/assets/file-icons/python-misc.svg diff --git a/packages/desktop/src/assets/file-icons/python.svg b/packages/ui/src/assets/file-icons/python.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/python.svg rename to packages/ui/src/assets/file-icons/python.svg diff --git a/packages/desktop/src/assets/file-icons/pytorch.svg b/packages/ui/src/assets/file-icons/pytorch.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/pytorch.svg rename to packages/ui/src/assets/file-icons/pytorch.svg diff --git a/packages/desktop/src/assets/file-icons/qsharp.svg b/packages/ui/src/assets/file-icons/qsharp.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/qsharp.svg rename to packages/ui/src/assets/file-icons/qsharp.svg diff --git a/packages/desktop/src/assets/file-icons/quarto.svg b/packages/ui/src/assets/file-icons/quarto.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/quarto.svg rename to packages/ui/src/assets/file-icons/quarto.svg diff --git a/packages/desktop/src/assets/file-icons/quasar.svg b/packages/ui/src/assets/file-icons/quasar.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/quasar.svg rename to packages/ui/src/assets/file-icons/quasar.svg diff --git a/packages/desktop/src/assets/file-icons/quokka.svg b/packages/ui/src/assets/file-icons/quokka.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/quokka.svg rename to packages/ui/src/assets/file-icons/quokka.svg diff --git a/packages/desktop/src/assets/file-icons/qwik.svg b/packages/ui/src/assets/file-icons/qwik.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/qwik.svg rename to packages/ui/src/assets/file-icons/qwik.svg diff --git a/packages/desktop/src/assets/file-icons/r.svg b/packages/ui/src/assets/file-icons/r.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/r.svg rename to packages/ui/src/assets/file-icons/r.svg diff --git a/packages/desktop/src/assets/file-icons/racket.svg b/packages/ui/src/assets/file-icons/racket.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/racket.svg rename to packages/ui/src/assets/file-icons/racket.svg diff --git a/packages/desktop/src/assets/file-icons/raml.svg b/packages/ui/src/assets/file-icons/raml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/raml.svg rename to packages/ui/src/assets/file-icons/raml.svg diff --git a/packages/desktop/src/assets/file-icons/razor.svg b/packages/ui/src/assets/file-icons/razor.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/razor.svg rename to packages/ui/src/assets/file-icons/razor.svg diff --git a/packages/desktop/src/assets/file-icons/rbxmk.svg b/packages/ui/src/assets/file-icons/rbxmk.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rbxmk.svg rename to packages/ui/src/assets/file-icons/rbxmk.svg diff --git a/packages/desktop/src/assets/file-icons/rc.svg b/packages/ui/src/assets/file-icons/rc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rc.svg rename to packages/ui/src/assets/file-icons/rc.svg diff --git a/packages/desktop/src/assets/file-icons/react.svg b/packages/ui/src/assets/file-icons/react.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/react.svg rename to packages/ui/src/assets/file-icons/react.svg diff --git a/packages/desktop/src/assets/file-icons/react_ts.svg b/packages/ui/src/assets/file-icons/react_ts.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/react_ts.svg rename to packages/ui/src/assets/file-icons/react_ts.svg diff --git a/packages/desktop/src/assets/file-icons/readme.svg b/packages/ui/src/assets/file-icons/readme.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/readme.svg rename to packages/ui/src/assets/file-icons/readme.svg diff --git a/packages/desktop/src/assets/file-icons/reason.svg b/packages/ui/src/assets/file-icons/reason.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/reason.svg rename to packages/ui/src/assets/file-icons/reason.svg diff --git a/packages/desktop/src/assets/file-icons/red.svg b/packages/ui/src/assets/file-icons/red.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/red.svg rename to packages/ui/src/assets/file-icons/red.svg diff --git a/packages/desktop/src/assets/file-icons/redux-action.svg b/packages/ui/src/assets/file-icons/redux-action.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/redux-action.svg rename to packages/ui/src/assets/file-icons/redux-action.svg diff --git a/packages/desktop/src/assets/file-icons/redux-reducer.svg b/packages/ui/src/assets/file-icons/redux-reducer.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/redux-reducer.svg rename to packages/ui/src/assets/file-icons/redux-reducer.svg diff --git a/packages/desktop/src/assets/file-icons/redux-selector.svg b/packages/ui/src/assets/file-icons/redux-selector.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/redux-selector.svg rename to packages/ui/src/assets/file-icons/redux-selector.svg diff --git a/packages/desktop/src/assets/file-icons/redux-store.svg b/packages/ui/src/assets/file-icons/redux-store.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/redux-store.svg rename to packages/ui/src/assets/file-icons/redux-store.svg diff --git a/packages/desktop/src/assets/file-icons/regedit.svg b/packages/ui/src/assets/file-icons/regedit.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/regedit.svg rename to packages/ui/src/assets/file-icons/regedit.svg diff --git a/packages/desktop/src/assets/file-icons/remark.svg b/packages/ui/src/assets/file-icons/remark.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/remark.svg rename to packages/ui/src/assets/file-icons/remark.svg diff --git a/packages/desktop/src/assets/file-icons/remix.svg b/packages/ui/src/assets/file-icons/remix.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/remix.svg rename to packages/ui/src/assets/file-icons/remix.svg diff --git a/packages/desktop/src/assets/file-icons/remix_light.svg b/packages/ui/src/assets/file-icons/remix_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/remix_light.svg rename to packages/ui/src/assets/file-icons/remix_light.svg diff --git a/packages/desktop/src/assets/file-icons/renovate.svg b/packages/ui/src/assets/file-icons/renovate.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/renovate.svg rename to packages/ui/src/assets/file-icons/renovate.svg diff --git a/packages/desktop/src/assets/file-icons/replit.svg b/packages/ui/src/assets/file-icons/replit.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/replit.svg rename to packages/ui/src/assets/file-icons/replit.svg diff --git a/packages/desktop/src/assets/file-icons/rescript-interface.svg b/packages/ui/src/assets/file-icons/rescript-interface.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rescript-interface.svg rename to packages/ui/src/assets/file-icons/rescript-interface.svg diff --git a/packages/desktop/src/assets/file-icons/rescript.svg b/packages/ui/src/assets/file-icons/rescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rescript.svg rename to packages/ui/src/assets/file-icons/rescript.svg diff --git a/packages/desktop/src/assets/file-icons/restql.svg b/packages/ui/src/assets/file-icons/restql.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/restql.svg rename to packages/ui/src/assets/file-icons/restql.svg diff --git a/packages/desktop/src/assets/file-icons/riot.svg b/packages/ui/src/assets/file-icons/riot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/riot.svg rename to packages/ui/src/assets/file-icons/riot.svg diff --git a/packages/desktop/src/assets/file-icons/roadmap.svg b/packages/ui/src/assets/file-icons/roadmap.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/roadmap.svg rename to packages/ui/src/assets/file-icons/roadmap.svg diff --git a/packages/desktop/src/assets/file-icons/roblox.svg b/packages/ui/src/assets/file-icons/roblox.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/roblox.svg rename to packages/ui/src/assets/file-icons/roblox.svg diff --git a/packages/desktop/src/assets/file-icons/robot.svg b/packages/ui/src/assets/file-icons/robot.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/robot.svg rename to packages/ui/src/assets/file-icons/robot.svg diff --git a/packages/desktop/src/assets/file-icons/robots.svg b/packages/ui/src/assets/file-icons/robots.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/robots.svg rename to packages/ui/src/assets/file-icons/robots.svg diff --git a/packages/desktop/src/assets/file-icons/rocket.svg b/packages/ui/src/assets/file-icons/rocket.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rocket.svg rename to packages/ui/src/assets/file-icons/rocket.svg diff --git a/packages/desktop/src/assets/file-icons/rojo.svg b/packages/ui/src/assets/file-icons/rojo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rojo.svg rename to packages/ui/src/assets/file-icons/rojo.svg diff --git a/packages/desktop/src/assets/file-icons/rollup.svg b/packages/ui/src/assets/file-icons/rollup.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rollup.svg rename to packages/ui/src/assets/file-icons/rollup.svg diff --git a/packages/desktop/src/assets/file-icons/rome.svg b/packages/ui/src/assets/file-icons/rome.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rome.svg rename to packages/ui/src/assets/file-icons/rome.svg diff --git a/packages/desktop/src/assets/file-icons/routing.svg b/packages/ui/src/assets/file-icons/routing.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/routing.svg rename to packages/ui/src/assets/file-icons/routing.svg diff --git a/packages/desktop/src/assets/file-icons/rspec.svg b/packages/ui/src/assets/file-icons/rspec.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rspec.svg rename to packages/ui/src/assets/file-icons/rspec.svg diff --git a/packages/desktop/src/assets/file-icons/rubocop.svg b/packages/ui/src/assets/file-icons/rubocop.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rubocop.svg rename to packages/ui/src/assets/file-icons/rubocop.svg diff --git a/packages/desktop/src/assets/file-icons/rubocop_light.svg b/packages/ui/src/assets/file-icons/rubocop_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rubocop_light.svg rename to packages/ui/src/assets/file-icons/rubocop_light.svg diff --git a/packages/desktop/src/assets/file-icons/ruby.svg b/packages/ui/src/assets/file-icons/ruby.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ruby.svg rename to packages/ui/src/assets/file-icons/ruby.svg diff --git a/packages/desktop/src/assets/file-icons/ruff.svg b/packages/ui/src/assets/file-icons/ruff.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/ruff.svg rename to packages/ui/src/assets/file-icons/ruff.svg diff --git a/packages/desktop/src/assets/file-icons/rust.svg b/packages/ui/src/assets/file-icons/rust.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/rust.svg rename to packages/ui/src/assets/file-icons/rust.svg diff --git a/packages/desktop/src/assets/file-icons/salesforce.svg b/packages/ui/src/assets/file-icons/salesforce.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/salesforce.svg rename to packages/ui/src/assets/file-icons/salesforce.svg diff --git a/packages/desktop/src/assets/file-icons/san.svg b/packages/ui/src/assets/file-icons/san.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/san.svg rename to packages/ui/src/assets/file-icons/san.svg diff --git a/packages/desktop/src/assets/file-icons/sas.svg b/packages/ui/src/assets/file-icons/sas.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sas.svg rename to packages/ui/src/assets/file-icons/sas.svg diff --git a/packages/desktop/src/assets/file-icons/sass.svg b/packages/ui/src/assets/file-icons/sass.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sass.svg rename to packages/ui/src/assets/file-icons/sass.svg diff --git a/packages/desktop/src/assets/file-icons/sbt.svg b/packages/ui/src/assets/file-icons/sbt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sbt.svg rename to packages/ui/src/assets/file-icons/sbt.svg diff --git a/packages/desktop/src/assets/file-icons/scala.svg b/packages/ui/src/assets/file-icons/scala.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/scala.svg rename to packages/ui/src/assets/file-icons/scala.svg diff --git a/packages/desktop/src/assets/file-icons/scheme.svg b/packages/ui/src/assets/file-icons/scheme.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/scheme.svg rename to packages/ui/src/assets/file-icons/scheme.svg diff --git a/packages/desktop/src/assets/file-icons/scons.svg b/packages/ui/src/assets/file-icons/scons.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/scons.svg rename to packages/ui/src/assets/file-icons/scons.svg diff --git a/packages/desktop/src/assets/file-icons/scons_light.svg b/packages/ui/src/assets/file-icons/scons_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/scons_light.svg rename to packages/ui/src/assets/file-icons/scons_light.svg diff --git a/packages/desktop/src/assets/file-icons/screwdriver.svg b/packages/ui/src/assets/file-icons/screwdriver.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/screwdriver.svg rename to packages/ui/src/assets/file-icons/screwdriver.svg diff --git a/packages/desktop/src/assets/file-icons/search.svg b/packages/ui/src/assets/file-icons/search.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/search.svg rename to packages/ui/src/assets/file-icons/search.svg diff --git a/packages/desktop/src/assets/file-icons/semantic-release.svg b/packages/ui/src/assets/file-icons/semantic-release.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/semantic-release.svg rename to packages/ui/src/assets/file-icons/semantic-release.svg diff --git a/packages/desktop/src/assets/file-icons/semantic-release_light.svg b/packages/ui/src/assets/file-icons/semantic-release_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/semantic-release_light.svg rename to packages/ui/src/assets/file-icons/semantic-release_light.svg diff --git a/packages/desktop/src/assets/file-icons/semgrep.svg b/packages/ui/src/assets/file-icons/semgrep.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/semgrep.svg rename to packages/ui/src/assets/file-icons/semgrep.svg diff --git a/packages/desktop/src/assets/file-icons/sentry.svg b/packages/ui/src/assets/file-icons/sentry.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sentry.svg rename to packages/ui/src/assets/file-icons/sentry.svg diff --git a/packages/desktop/src/assets/file-icons/sequelize.svg b/packages/ui/src/assets/file-icons/sequelize.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sequelize.svg rename to packages/ui/src/assets/file-icons/sequelize.svg diff --git a/packages/desktop/src/assets/file-icons/serverless.svg b/packages/ui/src/assets/file-icons/serverless.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/serverless.svg rename to packages/ui/src/assets/file-icons/serverless.svg diff --git a/packages/desktop/src/assets/file-icons/settings.svg b/packages/ui/src/assets/file-icons/settings.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/settings.svg rename to packages/ui/src/assets/file-icons/settings.svg diff --git a/packages/desktop/src/assets/file-icons/shader.svg b/packages/ui/src/assets/file-icons/shader.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/shader.svg rename to packages/ui/src/assets/file-icons/shader.svg diff --git a/packages/desktop/src/assets/file-icons/silverstripe.svg b/packages/ui/src/assets/file-icons/silverstripe.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/silverstripe.svg rename to packages/ui/src/assets/file-icons/silverstripe.svg diff --git a/packages/desktop/src/assets/file-icons/simulink.svg b/packages/ui/src/assets/file-icons/simulink.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/simulink.svg rename to packages/ui/src/assets/file-icons/simulink.svg diff --git a/packages/desktop/src/assets/file-icons/siyuan.svg b/packages/ui/src/assets/file-icons/siyuan.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/siyuan.svg rename to packages/ui/src/assets/file-icons/siyuan.svg diff --git a/packages/desktop/src/assets/file-icons/sketch.svg b/packages/ui/src/assets/file-icons/sketch.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sketch.svg rename to packages/ui/src/assets/file-icons/sketch.svg diff --git a/packages/desktop/src/assets/file-icons/slim.svg b/packages/ui/src/assets/file-icons/slim.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/slim.svg rename to packages/ui/src/assets/file-icons/slim.svg diff --git a/packages/desktop/src/assets/file-icons/slint.svg b/packages/ui/src/assets/file-icons/slint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/slint.svg rename to packages/ui/src/assets/file-icons/slint.svg diff --git a/packages/desktop/src/assets/file-icons/slug.svg b/packages/ui/src/assets/file-icons/slug.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/slug.svg rename to packages/ui/src/assets/file-icons/slug.svg diff --git a/packages/desktop/src/assets/file-icons/smarty.svg b/packages/ui/src/assets/file-icons/smarty.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/smarty.svg rename to packages/ui/src/assets/file-icons/smarty.svg diff --git a/packages/desktop/src/assets/file-icons/sml.svg b/packages/ui/src/assets/file-icons/sml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sml.svg rename to packages/ui/src/assets/file-icons/sml.svg diff --git a/packages/desktop/src/assets/file-icons/snakemake.svg b/packages/ui/src/assets/file-icons/snakemake.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/snakemake.svg rename to packages/ui/src/assets/file-icons/snakemake.svg diff --git a/packages/desktop/src/assets/file-icons/snapcraft.svg b/packages/ui/src/assets/file-icons/snapcraft.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/snapcraft.svg rename to packages/ui/src/assets/file-icons/snapcraft.svg diff --git a/packages/desktop/src/assets/file-icons/snowpack.svg b/packages/ui/src/assets/file-icons/snowpack.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/snowpack.svg rename to packages/ui/src/assets/file-icons/snowpack.svg diff --git a/packages/desktop/src/assets/file-icons/snowpack_light.svg b/packages/ui/src/assets/file-icons/snowpack_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/snowpack_light.svg rename to packages/ui/src/assets/file-icons/snowpack_light.svg diff --git a/packages/desktop/src/assets/file-icons/snyk.svg b/packages/ui/src/assets/file-icons/snyk.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/snyk.svg rename to packages/ui/src/assets/file-icons/snyk.svg diff --git a/packages/desktop/src/assets/file-icons/solidity.svg b/packages/ui/src/assets/file-icons/solidity.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/solidity.svg rename to packages/ui/src/assets/file-icons/solidity.svg diff --git a/packages/desktop/src/assets/file-icons/sonarcloud.svg b/packages/ui/src/assets/file-icons/sonarcloud.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sonarcloud.svg rename to packages/ui/src/assets/file-icons/sonarcloud.svg diff --git a/packages/desktop/src/assets/file-icons/spwn.svg b/packages/ui/src/assets/file-icons/spwn.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/spwn.svg rename to packages/ui/src/assets/file-icons/spwn.svg diff --git a/packages/desktop/src/assets/file-icons/stackblitz.svg b/packages/ui/src/assets/file-icons/stackblitz.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stackblitz.svg rename to packages/ui/src/assets/file-icons/stackblitz.svg diff --git a/packages/desktop/src/assets/file-icons/stan.svg b/packages/ui/src/assets/file-icons/stan.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stan.svg rename to packages/ui/src/assets/file-icons/stan.svg diff --git a/packages/desktop/src/assets/file-icons/steadybit.svg b/packages/ui/src/assets/file-icons/steadybit.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/steadybit.svg rename to packages/ui/src/assets/file-icons/steadybit.svg diff --git a/packages/desktop/src/assets/file-icons/stencil.svg b/packages/ui/src/assets/file-icons/stencil.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stencil.svg rename to packages/ui/src/assets/file-icons/stencil.svg diff --git a/packages/desktop/src/assets/file-icons/stitches.svg b/packages/ui/src/assets/file-icons/stitches.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stitches.svg rename to packages/ui/src/assets/file-icons/stitches.svg diff --git a/packages/desktop/src/assets/file-icons/stitches_light.svg b/packages/ui/src/assets/file-icons/stitches_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stitches_light.svg rename to packages/ui/src/assets/file-icons/stitches_light.svg diff --git a/packages/desktop/src/assets/file-icons/storybook.svg b/packages/ui/src/assets/file-icons/storybook.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/storybook.svg rename to packages/ui/src/assets/file-icons/storybook.svg diff --git a/packages/desktop/src/assets/file-icons/stryker.svg b/packages/ui/src/assets/file-icons/stryker.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stryker.svg rename to packages/ui/src/assets/file-icons/stryker.svg diff --git a/packages/desktop/src/assets/file-icons/stylable.svg b/packages/ui/src/assets/file-icons/stylable.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stylable.svg rename to packages/ui/src/assets/file-icons/stylable.svg diff --git a/packages/desktop/src/assets/file-icons/stylelint.svg b/packages/ui/src/assets/file-icons/stylelint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stylelint.svg rename to packages/ui/src/assets/file-icons/stylelint.svg diff --git a/packages/desktop/src/assets/file-icons/stylelint_light.svg b/packages/ui/src/assets/file-icons/stylelint_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stylelint_light.svg rename to packages/ui/src/assets/file-icons/stylelint_light.svg diff --git a/packages/desktop/src/assets/file-icons/stylus.svg b/packages/ui/src/assets/file-icons/stylus.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/stylus.svg rename to packages/ui/src/assets/file-icons/stylus.svg diff --git a/packages/desktop/src/assets/file-icons/sublime.svg b/packages/ui/src/assets/file-icons/sublime.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sublime.svg rename to packages/ui/src/assets/file-icons/sublime.svg diff --git a/packages/desktop/src/assets/file-icons/subtitles.svg b/packages/ui/src/assets/file-icons/subtitles.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/subtitles.svg rename to packages/ui/src/assets/file-icons/subtitles.svg diff --git a/packages/desktop/src/assets/file-icons/supabase.svg b/packages/ui/src/assets/file-icons/supabase.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/supabase.svg rename to packages/ui/src/assets/file-icons/supabase.svg diff --git a/packages/desktop/src/assets/file-icons/svelte.svg b/packages/ui/src/assets/file-icons/svelte.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/svelte.svg rename to packages/ui/src/assets/file-icons/svelte.svg diff --git a/packages/desktop/src/assets/file-icons/svg.svg b/packages/ui/src/assets/file-icons/svg.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/svg.svg rename to packages/ui/src/assets/file-icons/svg.svg diff --git a/packages/desktop/src/assets/file-icons/svgo.svg b/packages/ui/src/assets/file-icons/svgo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/svgo.svg rename to packages/ui/src/assets/file-icons/svgo.svg diff --git a/packages/desktop/src/assets/file-icons/svgr.svg b/packages/ui/src/assets/file-icons/svgr.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/svgr.svg rename to packages/ui/src/assets/file-icons/svgr.svg diff --git a/packages/desktop/src/assets/file-icons/swagger.svg b/packages/ui/src/assets/file-icons/swagger.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/swagger.svg rename to packages/ui/src/assets/file-icons/swagger.svg diff --git a/packages/desktop/src/assets/file-icons/sway.svg b/packages/ui/src/assets/file-icons/sway.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/sway.svg rename to packages/ui/src/assets/file-icons/sway.svg diff --git a/packages/desktop/src/assets/file-icons/swc.svg b/packages/ui/src/assets/file-icons/swc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/swc.svg rename to packages/ui/src/assets/file-icons/swc.svg diff --git a/packages/desktop/src/assets/file-icons/swift.svg b/packages/ui/src/assets/file-icons/swift.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/swift.svg rename to packages/ui/src/assets/file-icons/swift.svg diff --git a/packages/desktop/src/assets/file-icons/syncpack.svg b/packages/ui/src/assets/file-icons/syncpack.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/syncpack.svg rename to packages/ui/src/assets/file-icons/syncpack.svg diff --git a/packages/desktop/src/assets/file-icons/systemd.svg b/packages/ui/src/assets/file-icons/systemd.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/systemd.svg rename to packages/ui/src/assets/file-icons/systemd.svg diff --git a/packages/desktop/src/assets/file-icons/systemd_light.svg b/packages/ui/src/assets/file-icons/systemd_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/systemd_light.svg rename to packages/ui/src/assets/file-icons/systemd_light.svg diff --git a/packages/desktop/src/assets/file-icons/table.svg b/packages/ui/src/assets/file-icons/table.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/table.svg rename to packages/ui/src/assets/file-icons/table.svg diff --git a/packages/desktop/src/assets/file-icons/tailwindcss.svg b/packages/ui/src/assets/file-icons/tailwindcss.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tailwindcss.svg rename to packages/ui/src/assets/file-icons/tailwindcss.svg diff --git a/packages/desktop/src/assets/file-icons/taskfile.svg b/packages/ui/src/assets/file-icons/taskfile.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/taskfile.svg rename to packages/ui/src/assets/file-icons/taskfile.svg diff --git a/packages/desktop/src/assets/file-icons/tauri.svg b/packages/ui/src/assets/file-icons/tauri.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tauri.svg rename to packages/ui/src/assets/file-icons/tauri.svg diff --git a/packages/desktop/src/assets/file-icons/taze.svg b/packages/ui/src/assets/file-icons/taze.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/taze.svg rename to packages/ui/src/assets/file-icons/taze.svg diff --git a/packages/desktop/src/assets/file-icons/tcl.svg b/packages/ui/src/assets/file-icons/tcl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tcl.svg rename to packages/ui/src/assets/file-icons/tcl.svg diff --git a/packages/desktop/src/assets/file-icons/teal.svg b/packages/ui/src/assets/file-icons/teal.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/teal.svg rename to packages/ui/src/assets/file-icons/teal.svg diff --git a/packages/desktop/src/assets/file-icons/templ.svg b/packages/ui/src/assets/file-icons/templ.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/templ.svg rename to packages/ui/src/assets/file-icons/templ.svg diff --git a/packages/desktop/src/assets/file-icons/template.svg b/packages/ui/src/assets/file-icons/template.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/template.svg rename to packages/ui/src/assets/file-icons/template.svg diff --git a/packages/desktop/src/assets/file-icons/terraform.svg b/packages/ui/src/assets/file-icons/terraform.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/terraform.svg rename to packages/ui/src/assets/file-icons/terraform.svg diff --git a/packages/desktop/src/assets/file-icons/test-js.svg b/packages/ui/src/assets/file-icons/test-js.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/test-js.svg rename to packages/ui/src/assets/file-icons/test-js.svg diff --git a/packages/desktop/src/assets/file-icons/test-jsx.svg b/packages/ui/src/assets/file-icons/test-jsx.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/test-jsx.svg rename to packages/ui/src/assets/file-icons/test-jsx.svg diff --git a/packages/desktop/src/assets/file-icons/test-ts.svg b/packages/ui/src/assets/file-icons/test-ts.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/test-ts.svg rename to packages/ui/src/assets/file-icons/test-ts.svg diff --git a/packages/desktop/src/assets/file-icons/tex.svg b/packages/ui/src/assets/file-icons/tex.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tex.svg rename to packages/ui/src/assets/file-icons/tex.svg diff --git a/packages/desktop/src/assets/file-icons/textlint.svg b/packages/ui/src/assets/file-icons/textlint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/textlint.svg rename to packages/ui/src/assets/file-icons/textlint.svg diff --git a/packages/desktop/src/assets/file-icons/tilt.svg b/packages/ui/src/assets/file-icons/tilt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tilt.svg rename to packages/ui/src/assets/file-icons/tilt.svg diff --git a/packages/desktop/src/assets/file-icons/tldraw.svg b/packages/ui/src/assets/file-icons/tldraw.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tldraw.svg rename to packages/ui/src/assets/file-icons/tldraw.svg diff --git a/packages/desktop/src/assets/file-icons/tldraw_light.svg b/packages/ui/src/assets/file-icons/tldraw_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tldraw_light.svg rename to packages/ui/src/assets/file-icons/tldraw_light.svg diff --git a/packages/desktop/src/assets/file-icons/tobi.svg b/packages/ui/src/assets/file-icons/tobi.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tobi.svg rename to packages/ui/src/assets/file-icons/tobi.svg diff --git a/packages/desktop/src/assets/file-icons/tobimake.svg b/packages/ui/src/assets/file-icons/tobimake.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tobimake.svg rename to packages/ui/src/assets/file-icons/tobimake.svg diff --git a/packages/desktop/src/assets/file-icons/todo.svg b/packages/ui/src/assets/file-icons/todo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/todo.svg rename to packages/ui/src/assets/file-icons/todo.svg diff --git a/packages/desktop/src/assets/file-icons/toml.svg b/packages/ui/src/assets/file-icons/toml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/toml.svg rename to packages/ui/src/assets/file-icons/toml.svg diff --git a/packages/desktop/src/assets/file-icons/toml_light.svg b/packages/ui/src/assets/file-icons/toml_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/toml_light.svg rename to packages/ui/src/assets/file-icons/toml_light.svg diff --git a/packages/desktop/src/assets/file-icons/travis.svg b/packages/ui/src/assets/file-icons/travis.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/travis.svg rename to packages/ui/src/assets/file-icons/travis.svg diff --git a/packages/desktop/src/assets/file-icons/tree.svg b/packages/ui/src/assets/file-icons/tree.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tree.svg rename to packages/ui/src/assets/file-icons/tree.svg diff --git a/packages/desktop/src/assets/file-icons/trigger.svg b/packages/ui/src/assets/file-icons/trigger.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/trigger.svg rename to packages/ui/src/assets/file-icons/trigger.svg diff --git a/packages/desktop/src/assets/file-icons/tsconfig.svg b/packages/ui/src/assets/file-icons/tsconfig.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tsconfig.svg rename to packages/ui/src/assets/file-icons/tsconfig.svg diff --git a/packages/desktop/src/assets/file-icons/tsdoc.svg b/packages/ui/src/assets/file-icons/tsdoc.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tsdoc.svg rename to packages/ui/src/assets/file-icons/tsdoc.svg diff --git a/packages/desktop/src/assets/file-icons/tsil.svg b/packages/ui/src/assets/file-icons/tsil.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tsil.svg rename to packages/ui/src/assets/file-icons/tsil.svg diff --git a/packages/desktop/src/assets/file-icons/tune.svg b/packages/ui/src/assets/file-icons/tune.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/tune.svg rename to packages/ui/src/assets/file-icons/tune.svg diff --git a/packages/desktop/src/assets/file-icons/turborepo.svg b/packages/ui/src/assets/file-icons/turborepo.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/turborepo.svg rename to packages/ui/src/assets/file-icons/turborepo.svg diff --git a/packages/desktop/src/assets/file-icons/turborepo_light.svg b/packages/ui/src/assets/file-icons/turborepo_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/turborepo_light.svg rename to packages/ui/src/assets/file-icons/turborepo_light.svg diff --git a/packages/desktop/src/assets/file-icons/twig.svg b/packages/ui/src/assets/file-icons/twig.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/twig.svg rename to packages/ui/src/assets/file-icons/twig.svg diff --git a/packages/desktop/src/assets/file-icons/twine.svg b/packages/ui/src/assets/file-icons/twine.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/twine.svg rename to packages/ui/src/assets/file-icons/twine.svg diff --git a/packages/desktop/src/assets/file-icons/typescript-def.svg b/packages/ui/src/assets/file-icons/typescript-def.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/typescript-def.svg rename to packages/ui/src/assets/file-icons/typescript-def.svg diff --git a/packages/desktop/src/assets/file-icons/typescript.svg b/packages/ui/src/assets/file-icons/typescript.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/typescript.svg rename to packages/ui/src/assets/file-icons/typescript.svg diff --git a/packages/desktop/src/assets/file-icons/typst.svg b/packages/ui/src/assets/file-icons/typst.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/typst.svg rename to packages/ui/src/assets/file-icons/typst.svg diff --git a/packages/desktop/src/assets/file-icons/umi.svg b/packages/ui/src/assets/file-icons/umi.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/umi.svg rename to packages/ui/src/assets/file-icons/umi.svg diff --git a/packages/desktop/src/assets/file-icons/uml.svg b/packages/ui/src/assets/file-icons/uml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/uml.svg rename to packages/ui/src/assets/file-icons/uml.svg diff --git a/packages/desktop/src/assets/file-icons/uml_light.svg b/packages/ui/src/assets/file-icons/uml_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/uml_light.svg rename to packages/ui/src/assets/file-icons/uml_light.svg diff --git a/packages/desktop/src/assets/file-icons/unity.svg b/packages/ui/src/assets/file-icons/unity.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/unity.svg rename to packages/ui/src/assets/file-icons/unity.svg diff --git a/packages/desktop/src/assets/file-icons/unocss.svg b/packages/ui/src/assets/file-icons/unocss.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/unocss.svg rename to packages/ui/src/assets/file-icons/unocss.svg diff --git a/packages/desktop/src/assets/file-icons/url.svg b/packages/ui/src/assets/file-icons/url.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/url.svg rename to packages/ui/src/assets/file-icons/url.svg diff --git a/packages/desktop/src/assets/file-icons/uv.svg b/packages/ui/src/assets/file-icons/uv.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/uv.svg rename to packages/ui/src/assets/file-icons/uv.svg diff --git a/packages/desktop/src/assets/file-icons/vagrant.svg b/packages/ui/src/assets/file-icons/vagrant.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vagrant.svg rename to packages/ui/src/assets/file-icons/vagrant.svg diff --git a/packages/desktop/src/assets/file-icons/vala.svg b/packages/ui/src/assets/file-icons/vala.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vala.svg rename to packages/ui/src/assets/file-icons/vala.svg diff --git a/packages/desktop/src/assets/file-icons/vanilla-extract.svg b/packages/ui/src/assets/file-icons/vanilla-extract.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vanilla-extract.svg rename to packages/ui/src/assets/file-icons/vanilla-extract.svg diff --git a/packages/desktop/src/assets/file-icons/varnish.svg b/packages/ui/src/assets/file-icons/varnish.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/varnish.svg rename to packages/ui/src/assets/file-icons/varnish.svg diff --git a/packages/desktop/src/assets/file-icons/vedic.svg b/packages/ui/src/assets/file-icons/vedic.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vedic.svg rename to packages/ui/src/assets/file-icons/vedic.svg diff --git a/packages/desktop/src/assets/file-icons/velite.svg b/packages/ui/src/assets/file-icons/velite.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/velite.svg rename to packages/ui/src/assets/file-icons/velite.svg diff --git a/packages/desktop/src/assets/file-icons/velocity.svg b/packages/ui/src/assets/file-icons/velocity.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/velocity.svg rename to packages/ui/src/assets/file-icons/velocity.svg diff --git a/packages/desktop/src/assets/file-icons/vercel.svg b/packages/ui/src/assets/file-icons/vercel.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vercel.svg rename to packages/ui/src/assets/file-icons/vercel.svg diff --git a/packages/desktop/src/assets/file-icons/vercel_light.svg b/packages/ui/src/assets/file-icons/vercel_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vercel_light.svg rename to packages/ui/src/assets/file-icons/vercel_light.svg diff --git a/packages/desktop/src/assets/file-icons/verdaccio.svg b/packages/ui/src/assets/file-icons/verdaccio.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/verdaccio.svg rename to packages/ui/src/assets/file-icons/verdaccio.svg diff --git a/packages/desktop/src/assets/file-icons/verified.svg b/packages/ui/src/assets/file-icons/verified.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/verified.svg rename to packages/ui/src/assets/file-icons/verified.svg diff --git a/packages/desktop/src/assets/file-icons/verilog.svg b/packages/ui/src/assets/file-icons/verilog.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/verilog.svg rename to packages/ui/src/assets/file-icons/verilog.svg diff --git a/packages/desktop/src/assets/file-icons/vfl.svg b/packages/ui/src/assets/file-icons/vfl.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vfl.svg rename to packages/ui/src/assets/file-icons/vfl.svg diff --git a/packages/desktop/src/assets/file-icons/video.svg b/packages/ui/src/assets/file-icons/video.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/video.svg rename to packages/ui/src/assets/file-icons/video.svg diff --git a/packages/desktop/src/assets/file-icons/vim.svg b/packages/ui/src/assets/file-icons/vim.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vim.svg rename to packages/ui/src/assets/file-icons/vim.svg diff --git a/packages/desktop/src/assets/file-icons/virtual.svg b/packages/ui/src/assets/file-icons/virtual.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/virtual.svg rename to packages/ui/src/assets/file-icons/virtual.svg diff --git a/packages/desktop/src/assets/file-icons/visualstudio.svg b/packages/ui/src/assets/file-icons/visualstudio.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/visualstudio.svg rename to packages/ui/src/assets/file-icons/visualstudio.svg diff --git a/packages/desktop/src/assets/file-icons/vite.svg b/packages/ui/src/assets/file-icons/vite.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vite.svg rename to packages/ui/src/assets/file-icons/vite.svg diff --git a/packages/desktop/src/assets/file-icons/vitest.svg b/packages/ui/src/assets/file-icons/vitest.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vitest.svg rename to packages/ui/src/assets/file-icons/vitest.svg diff --git a/packages/desktop/src/assets/file-icons/vlang.svg b/packages/ui/src/assets/file-icons/vlang.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vlang.svg rename to packages/ui/src/assets/file-icons/vlang.svg diff --git a/packages/desktop/src/assets/file-icons/vscode.svg b/packages/ui/src/assets/file-icons/vscode.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vscode.svg rename to packages/ui/src/assets/file-icons/vscode.svg diff --git a/packages/desktop/src/assets/file-icons/vue-config.svg b/packages/ui/src/assets/file-icons/vue-config.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vue-config.svg rename to packages/ui/src/assets/file-icons/vue-config.svg diff --git a/packages/desktop/src/assets/file-icons/vue.svg b/packages/ui/src/assets/file-icons/vue.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vue.svg rename to packages/ui/src/assets/file-icons/vue.svg diff --git a/packages/desktop/src/assets/file-icons/vuex-store.svg b/packages/ui/src/assets/file-icons/vuex-store.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/vuex-store.svg rename to packages/ui/src/assets/file-icons/vuex-store.svg diff --git a/packages/desktop/src/assets/file-icons/wakatime.svg b/packages/ui/src/assets/file-icons/wakatime.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wakatime.svg rename to packages/ui/src/assets/file-icons/wakatime.svg diff --git a/packages/desktop/src/assets/file-icons/wakatime_light.svg b/packages/ui/src/assets/file-icons/wakatime_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wakatime_light.svg rename to packages/ui/src/assets/file-icons/wakatime_light.svg diff --git a/packages/desktop/src/assets/file-icons/wallaby.svg b/packages/ui/src/assets/file-icons/wallaby.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wallaby.svg rename to packages/ui/src/assets/file-icons/wallaby.svg diff --git a/packages/desktop/src/assets/file-icons/wally.svg b/packages/ui/src/assets/file-icons/wally.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wally.svg rename to packages/ui/src/assets/file-icons/wally.svg diff --git a/packages/desktop/src/assets/file-icons/watchman.svg b/packages/ui/src/assets/file-icons/watchman.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/watchman.svg rename to packages/ui/src/assets/file-icons/watchman.svg diff --git a/packages/desktop/src/assets/file-icons/webassembly.svg b/packages/ui/src/assets/file-icons/webassembly.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/webassembly.svg rename to packages/ui/src/assets/file-icons/webassembly.svg diff --git a/packages/desktop/src/assets/file-icons/webhint.svg b/packages/ui/src/assets/file-icons/webhint.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/webhint.svg rename to packages/ui/src/assets/file-icons/webhint.svg diff --git a/packages/desktop/src/assets/file-icons/webpack.svg b/packages/ui/src/assets/file-icons/webpack.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/webpack.svg rename to packages/ui/src/assets/file-icons/webpack.svg diff --git a/packages/desktop/src/assets/file-icons/wepy.svg b/packages/ui/src/assets/file-icons/wepy.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wepy.svg rename to packages/ui/src/assets/file-icons/wepy.svg diff --git a/packages/desktop/src/assets/file-icons/werf.svg b/packages/ui/src/assets/file-icons/werf.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/werf.svg rename to packages/ui/src/assets/file-icons/werf.svg diff --git a/packages/desktop/src/assets/file-icons/windicss.svg b/packages/ui/src/assets/file-icons/windicss.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/windicss.svg rename to packages/ui/src/assets/file-icons/windicss.svg diff --git a/packages/desktop/src/assets/file-icons/wolframlanguage.svg b/packages/ui/src/assets/file-icons/wolframlanguage.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wolframlanguage.svg rename to packages/ui/src/assets/file-icons/wolframlanguage.svg diff --git a/packages/desktop/src/assets/file-icons/word.svg b/packages/ui/src/assets/file-icons/word.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/word.svg rename to packages/ui/src/assets/file-icons/word.svg diff --git a/packages/desktop/src/assets/file-icons/wrangler.svg b/packages/ui/src/assets/file-icons/wrangler.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wrangler.svg rename to packages/ui/src/assets/file-icons/wrangler.svg diff --git a/packages/desktop/src/assets/file-icons/wxt.svg b/packages/ui/src/assets/file-icons/wxt.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/wxt.svg rename to packages/ui/src/assets/file-icons/wxt.svg diff --git a/packages/desktop/src/assets/file-icons/xaml.svg b/packages/ui/src/assets/file-icons/xaml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/xaml.svg rename to packages/ui/src/assets/file-icons/xaml.svg diff --git a/packages/desktop/src/assets/file-icons/xmake.svg b/packages/ui/src/assets/file-icons/xmake.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/xmake.svg rename to packages/ui/src/assets/file-icons/xmake.svg diff --git a/packages/desktop/src/assets/file-icons/xml.svg b/packages/ui/src/assets/file-icons/xml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/xml.svg rename to packages/ui/src/assets/file-icons/xml.svg diff --git a/packages/desktop/src/assets/file-icons/yaml.svg b/packages/ui/src/assets/file-icons/yaml.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/yaml.svg rename to packages/ui/src/assets/file-icons/yaml.svg diff --git a/packages/desktop/src/assets/file-icons/yang.svg b/packages/ui/src/assets/file-icons/yang.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/yang.svg rename to packages/ui/src/assets/file-icons/yang.svg diff --git a/packages/desktop/src/assets/file-icons/yarn.svg b/packages/ui/src/assets/file-icons/yarn.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/yarn.svg rename to packages/ui/src/assets/file-icons/yarn.svg diff --git a/packages/desktop/src/assets/file-icons/zeabur.svg b/packages/ui/src/assets/file-icons/zeabur.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/zeabur.svg rename to packages/ui/src/assets/file-icons/zeabur.svg diff --git a/packages/desktop/src/assets/file-icons/zeabur_light.svg b/packages/ui/src/assets/file-icons/zeabur_light.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/zeabur_light.svg rename to packages/ui/src/assets/file-icons/zeabur_light.svg diff --git a/packages/desktop/src/assets/file-icons/zig.svg b/packages/ui/src/assets/file-icons/zig.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/zig.svg rename to packages/ui/src/assets/file-icons/zig.svg diff --git a/packages/desktop/src/assets/file-icons/zip.svg b/packages/ui/src/assets/file-icons/zip.svg similarity index 100% rename from packages/desktop/src/assets/file-icons/zip.svg rename to packages/ui/src/assets/file-icons/zip.svg diff --git a/packages/ui/src/components/basic-tool.css b/packages/ui/src/components/basic-tool.css index f3d9f865f4..4ea13b7810 100644 --- a/packages/ui/src/components/basic-tool.css +++ b/packages/ui/src/components/basic-tool.css @@ -6,7 +6,7 @@ gap: 20px; justify-content: space-between; - [data-slot="tool-trigger-content"] { + [data-slot="basic-tool-tool-trigger-content"] { width: 100%; display: flex; align-items: center; @@ -14,16 +14,16 @@ gap: 20px; } - [data-slot="tool-icon"] { + [data-slot="basic-tool-tool-icon"] { flex-shrink: 0; } - [data-slot="tool-info"] { + [data-slot="basic-tool-tool-info"] { flex-grow: 1; min-width: 0; } - [data-slot="tool-info-structured"] { + [data-slot="basic-tool-tool-info-structured"] { width: 100%; display: flex; align-items: center; @@ -31,7 +31,7 @@ justify-content: space-between; } - [data-slot="tool-info-main"] { + [data-slot="basic-tool-tool-info-main"] { display: flex; align-items: center; gap: 8px; @@ -40,7 +40,7 @@ text-overflow: ellipsis; } - [data-slot="tool-title"] { + [data-slot="basic-tool-tool-title"] { font-family: var(--font-family-sans); font-size: var(--font-size-small); font-style: normal; @@ -54,7 +54,7 @@ } } - [data-slot="tool-subtitle"] { + [data-slot="basic-tool-tool-subtitle"] { font-family: var(--font-family-sans); font-size: var(--font-size-small); font-style: normal; @@ -64,7 +64,7 @@ color: var(--text-weak); } - [data-slot="tool-arg"] { + [data-slot="basic-tool-tool-arg"] { font-family: var(--font-family-sans); font-size: var(--font-size-small); font-style: normal; diff --git a/packages/ui/src/components/basic-tool.tsx b/packages/ui/src/components/basic-tool.tsx index 43574fbb77..2b133a2986 100644 --- a/packages/ui/src/components/basic-tool.tsx +++ b/packages/ui/src/components/basic-tool.tsx @@ -29,16 +29,16 @@ export function BasicTool(props: BasicToolProps) {
-
- -
+
+ +
{(trigger) => ( -
-
+
+
{(arg) => ( - + {props.children} diff --git a/packages/ui/src/components/checkbox.css b/packages/ui/src/components/checkbox.css index 358391bd1a..b10ebbbd19 100644 --- a/packages/ui/src/components/checkbox.css +++ b/packages/ui/src/components/checkbox.css @@ -4,7 +4,7 @@ gap: 12px; cursor: default; - [data-slot="checkbox-input"] { + [data-slot="checkbox-checkbox-input"] { position: absolute; width: 1px; height: 1px; @@ -16,7 +16,7 @@ border-width: 0; } - [data-slot="checkbox-control"] { + [data-slot="checkbox-checkbox-control"] { display: flex; align-items: center; justify-content: center; @@ -30,7 +30,7 @@ /* background-color: var(--surface-weak); */ } - [data-slot="checkbox-indicator"] { + [data-slot="checkbox-checkbox-indicator"] { display: flex; align-items: center; justify-content: center; @@ -40,10 +40,10 @@ opacity: 0; } - /* [data-slot="checkbox-content"] { */ + /* [data-slot="checkbox-checkbox-content"] { */ /* } */ - [data-slot="checkbox-label"] { + [data-slot="checkbox-checkbox-label"] { user-select: none; color: var(--text-base); @@ -56,7 +56,7 @@ letter-spacing: var(--letter-spacing-normal); } - [data-slot="checkbox-description"] { + [data-slot="checkbox-checkbox-description"] { color: var(--text-base); font-family: var(--font-family-sans); font-size: 12px; @@ -65,7 +65,7 @@ letter-spacing: var(--letter-spacing-normal); } - [data-slot="checkbox-error"] { + [data-slot="checkbox-checkbox-error"] { color: var(--text-error); font-family: var(--font-family-sans); font-size: 12px; @@ -74,30 +74,30 @@ letter-spacing: var(--letter-spacing-normal); } - &:hover:not([data-disabled], [data-readonly]) [data-slot="checkbox-control"] { + &:hover:not([data-disabled], [data-readonly]) [data-slot="checkbox-checkbox-control"] { border-color: var(--border-hover); background-color: var(--surface-hover); } - &:focus-within:not([data-readonly]) [data-slot="checkbox-control"] { + &:focus-within:not([data-readonly]) [data-slot="checkbox-checkbox-control"] { border-color: var(--border-focus); box-shadow: 0 0 0 2px var(--surface-focus); } - &[data-checked] [data-slot="checkbox-control"], - &[data-indeterminate] [data-slot="checkbox-control"] { + &[data-checked] [data-slot="checkbox-checkbox-control"], + &[data-indeterminate] [data-slot="checkbox-checkbox-control"] { border-color: var(--border-base); background-color: var(--surface-weak); } - &[data-checked]:hover:not([data-disabled], [data-readonly]) [data-slot="checkbox-control"], - &[data-indeterminate]:hover:not([data-disabled]) [data-slot="checkbox-control"] { + &[data-checked]:hover:not([data-disabled], [data-readonly]) [data-slot="checkbox-checkbox-control"], + &[data-indeterminate]:hover:not([data-disabled]) [data-slot="checkbox-checkbox-control"] { border-color: var(--border-hover); background-color: var(--surface-hover); } - &[data-checked] [data-slot="checkbox-indicator"], - &[data-indeterminate] [data-slot="checkbox-indicator"] { + &[data-checked] [data-slot="checkbox-checkbox-indicator"], + &[data-indeterminate] [data-slot="checkbox-checkbox-indicator"] { opacity: 1; } @@ -105,12 +105,12 @@ cursor: not-allowed; } - &[data-disabled] [data-slot="checkbox-control"] { + &[data-disabled] [data-slot="checkbox-checkbox-control"] { border-color: var(--border-disabled); background-color: var(--surface-disabled); } - &[data-invalid] [data-slot="checkbox-control"] { + &[data-invalid] [data-slot="checkbox-checkbox-control"] { border-color: var(--border-error); } diff --git a/packages/ui/src/components/checkbox.tsx b/packages/ui/src/components/checkbox.tsx index 2009a430b9..558c4bbd27 100644 --- a/packages/ui/src/components/checkbox.tsx +++ b/packages/ui/src/components/checkbox.tsx @@ -13,9 +13,9 @@ export function Checkbox(props: CheckboxProps) { const resolved = children(() => local.children) return ( - - - + + + {local.icon || ( -
+
- + {resolved()} - {local.description} + {local.description} - +
) diff --git a/packages/ui/src/components/dialog.css b/packages/ui/src/components/dialog.css index 7cf15bb232..2ac0709ddd 100644 --- a/packages/ui/src/components/dialog.css +++ b/packages/ui/src/components/dialog.css @@ -21,7 +21,7 @@ align-items: center; justify-content: center; - [data-slot="container"] { + [data-slot="dialog-container"] { position: relative; z-index: 50; width: min(calc(100vw - 16px), 624px); @@ -31,7 +31,7 @@ align-items: center; justify-items: start; - [data-slot="content"] { + [data-slot="dialog-content"] { display: flex; flex-direction: column; align-items: flex-start; @@ -56,7 +56,7 @@ /* animation: contentShow 300ms ease-out; */ /* } */ - [data-slot="header"] { + [data-slot="dialog-header"] { display: flex; height: 40px; padding: 4px 4px 4px 8px; @@ -65,7 +65,7 @@ flex-shrink: 0; align-self: stretch; - [data-slot="title"] { + [data-slot="dialog-title"] { color: var(--text-strong); /* text-16-medium */ @@ -76,10 +76,10 @@ line-height: var(--line-height-x-large); /* 150% */ letter-spacing: var(--letter-spacing-tight); } - /* [data-slot="close-button"] {} */ + /* [data-slot="dialog-close-button"] {} */ } - /* [data-slot="description"] {} */ - [data-slot="body"] { + /* [data-slot="dialog-description"] {} */ + [data-slot="dialog-body"] { width: 100%; position: relative; display: flex; diff --git a/packages/ui/src/components/dialog.tsx b/packages/ui/src/components/dialog.tsx index ce7a4b3acc..4625482b54 100644 --- a/packages/ui/src/components/dialog.tsx +++ b/packages/ui/src/components/dialog.tsx @@ -45,9 +45,9 @@ export function DialogRoot(props: DialogProps) {
-
+
) { - return
+ return
} function DialogBody(props: ComponentProps<"div">) { - return
+ return
} function DialogTitle(props: DialogTitleProps & ComponentProps<"h2">) { - return + return } function DialogDescription(props: DialogDescriptionProps & ComponentProps<"p">) { - return + return } function DialogCloseButton(props: DialogCloseButtonProps & ComponentProps<"button">) { - return + return } export const Dialog = Object.assign(DialogRoot, { diff --git a/packages/ui/src/components/diff-changes.css b/packages/ui/src/components/diff-changes.css index eb95c46769..010860d130 100644 --- a/packages/ui/src/components/diff-changes.css +++ b/packages/ui/src/components/diff-changes.css @@ -4,7 +4,7 @@ justify-content: flex-end; align-items: center; - [data-slot="additions"] { + [data-slot="diff-changes-additions"] { font-family: var(--font-family-mono); font-size: var(--font-size-small); font-style: normal; @@ -15,7 +15,7 @@ color: var(--text-diff-add-base); } - [data-slot="deletions"] { + [data-slot="diff-changes-deletions"] { font-family: var(--font-family-mono); font-size: var(--font-size-small); font-style: normal; diff --git a/packages/ui/src/components/diff-changes.tsx b/packages/ui/src/components/diff-changes.tsx index a8ab737f71..9e29dbb2b5 100644 --- a/packages/ui/src/components/diff-changes.tsx +++ b/packages/ui/src/components/diff-changes.tsx @@ -105,8 +105,8 @@ export function DiffChanges(props: { - {`+${additions()}`} - {`-${deletions()}`} + {`+${additions()}`} + {`-${deletions()}`}
diff --git a/packages/ui/src/components/diff.tsx b/packages/ui/src/components/diff.tsx index d0d427499b..8743be2900 100644 --- a/packages/ui/src/components/diff.tsx +++ b/packages/ui/src/components/diff.tsx @@ -4,8 +4,6 @@ import { type DiffLineAnnotation, type HunkData, FileDiffOptions, - registerCustomTheme, - ThemeRegistrationResolved, } from "@pierre/precision-diffs" import { ComponentProps, createEffect, splitProps } from "solid-js" @@ -173,373 +171,3 @@ export function Diff(props: DiffProps) { /> ) } - -registerCustomTheme("OpenCode", () => { - return Promise.resolve({ - name: "OpenCode", - colors: { - "editor.background": "transparent", - "editor.foreground": "var(--text-base)", - "gitDecoration.addedResourceForeground": "var(--syntax-diff-add)", - "gitDecoration.deletedResourceForeground": "var(--syntax-diff-delete)", - // "gitDecoration.conflictingResourceForeground": "#ffca00", - // "gitDecoration.modifiedResourceForeground": "#1a76d4", - // "gitDecoration.untrackedResourceForeground": "#00cab1", - // "gitDecoration.ignoredResourceForeground": "#84848A", - // "terminal.titleForeground": "#adadb1", - // "terminal.titleInactiveForeground": "#84848A", - // "terminal.background": "#141415", - // "terminal.foreground": "#adadb1", - // "terminal.ansiBlack": "#141415", - // "terminal.ansiRed": "#ff2e3f", - // "terminal.ansiGreen": "#0dbe4e", - // "terminal.ansiYellow": "#ffca00", - // "terminal.ansiBlue": "#008cff", - // "terminal.ansiMagenta": "#c635e4", - // "terminal.ansiCyan": "#08c0ef", - // "terminal.ansiWhite": "#c6c6c8", - // "terminal.ansiBrightBlack": "#141415", - // "terminal.ansiBrightRed": "#ff2e3f", - // "terminal.ansiBrightGreen": "#0dbe4e", - // "terminal.ansiBrightYellow": "#ffca00", - // "terminal.ansiBrightBlue": "#008cff", - // "terminal.ansiBrightMagenta": "#c635e4", - // "terminal.ansiBrightCyan": "#08c0ef", - // "terminal.ansiBrightWhite": "#c6c6c8", - }, - tokenColors: [ - { - scope: ["comment", "punctuation.definition.comment", "string.comment"], - settings: { - foreground: "var(--syntax-comment)", - }, - }, - { - scope: ["entity.other.attribute-name"], - settings: { - foreground: "var(--syntax-property)", // maybe attribute - }, - }, - { - scope: ["constant", "entity.name.constant", "variable.other.constant", "variable.language", "entity"], - settings: { - foreground: "var(--syntax-constant)", - }, - }, - { - scope: ["entity.name", "meta.export.default", "meta.definition.variable"], - settings: { - foreground: "var(--syntax-type)", - }, - }, - { - scope: ["meta.object.member"], - settings: { - foreground: "var(--syntax-primitive)", - }, - }, - { - scope: [ - "variable.parameter.function", - "meta.jsx.children", - "meta.block", - "meta.tag.attributes", - "entity.name.constant", - "meta.embedded.expression", - "meta.template.expression", - "string.other.begin.yaml", - "string.other.end.yaml", - ], - settings: { - foreground: "var(--syntax-punctuation)", - }, - }, - { - scope: ["entity.name.function", "support.type.primitive"], - settings: { - foreground: "var(--syntax-primitive)", - }, - }, - { - scope: ["support.class.component"], - settings: { - foreground: "var(--syntax-type)", - }, - }, - { - scope: "keyword", - settings: { - foreground: "var(--syntax-keyword)", - }, - }, - { - scope: [ - "keyword.operator", - "storage.type.function.arrow", - "punctuation.separator.key-value.css", - "entity.name.tag.yaml", - "punctuation.separator.key-value.mapping.yaml", - ], - settings: { - foreground: "var(--syntax-operator)", - }, - }, - { - scope: ["storage", "storage.type"], - settings: { - foreground: "var(--syntax-keyword)", - }, - }, - { - scope: ["storage.modifier.package", "storage.modifier.import", "storage.type.java"], - settings: { - foreground: "var(--syntax-primitive)", - }, - }, - { - scope: [ - "string", - "punctuation.definition.string", - "string punctuation.section.embedded source", - "entity.name.tag", - ], - settings: { - foreground: "var(--syntax-string)", - }, - }, - { - scope: "support", - settings: { - foreground: "var(--syntax-primitive)", - }, - }, - { - scope: ["support.type.object.module", "variable.other.object", "support.type.property-name.css"], - settings: { - foreground: "var(--syntax-object)", - }, - }, - { - scope: "meta.property-name", - settings: { - foreground: "var(--syntax-property)", - }, - }, - { - scope: "variable", - settings: { - foreground: "var(--syntax-variable)", - }, - }, - { - scope: "variable.other", - settings: { - foreground: "var(--syntax-variable)", - }, - }, - { - scope: [ - "invalid.broken", - "invalid.illegal", - "invalid.unimplemented", - "invalid.deprecated", - "message.error", - "markup.deleted", - "meta.diff.header.from-file", - "punctuation.definition.deleted", - "brackethighlighter.unmatched", - "token.error-token", - ], - settings: { - foreground: "var(--syntax-critical)", - }, - }, - { - scope: "carriage-return", - settings: { - foreground: "var(--syntax-keyword)", - }, - }, - { - scope: "string source", - settings: { - foreground: "var(--syntax-variable)", - }, - }, - { - scope: "string variable", - settings: { - foreground: "var(--syntax-constant)", - }, - }, - { - scope: [ - "source.regexp", - "string.regexp", - "string.regexp.character-class", - "string.regexp constant.character.escape", - "string.regexp source.ruby.embedded", - "string.regexp string.regexp.arbitrary-repitition", - "string.regexp constant.character.escape", - ], - settings: { - foreground: "var(--syntax-regexp)", - }, - }, - { - scope: "support.constant", - settings: { - foreground: "var(--syntax-primitive)", - }, - }, - { - scope: "support.variable", - settings: { - foreground: "var(--syntax-variable)", - }, - }, - { - scope: "meta.module-reference", - settings: { - foreground: "var(--syntax-info)", - }, - }, - { - scope: "punctuation.definition.list.begin.markdown", - settings: { - foreground: "var(--syntax-punctuation)", - }, - }, - { - scope: ["markup.heading", "markup.heading entity.name"], - settings: { - fontStyle: "bold", - foreground: "var(--syntax-info)", - }, - }, - { - scope: "markup.quote", - settings: { - foreground: "var(--syntax-info)", - }, - }, - { - scope: "markup.italic", - settings: { - fontStyle: "italic", - // foreground: "", - }, - }, - { - scope: "markup.bold", - settings: { - fontStyle: "bold", - foreground: "var(--text-strong)", - }, - }, - { - scope: [ - "markup.raw", - "markup.inserted", - "meta.diff.header.to-file", - "punctuation.definition.inserted", - "markup.changed", - "punctuation.definition.changed", - "markup.ignored", - "markup.untracked", - ], - settings: { - foreground: "var(--text-base)", - }, - }, - { - scope: "meta.diff.range", - settings: { - fontStyle: "bold", - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: "meta.diff.header", - settings: { - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: "meta.separator", - settings: { - fontStyle: "bold", - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: "meta.output", - settings: { - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: "meta.export.default", - settings: { - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: [ - "brackethighlighter.tag", - "brackethighlighter.curly", - "brackethighlighter.round", - "brackethighlighter.square", - "brackethighlighter.angle", - "brackethighlighter.quote", - ], - settings: { - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: ["constant.other.reference.link", "string.other.link"], - settings: { - fontStyle: "underline", - foreground: "var(--syntax-unknown)", - }, - }, - { - scope: "token.info-token", - settings: { - foreground: "var(--syntax-info)", - }, - }, - { - scope: "token.warn-token", - settings: { - foreground: "var(--syntax-warning)", - }, - }, - { - scope: "token.debug-token", - settings: { - foreground: "var(--syntax-info)", - }, - }, - ], - semanticTokenColors: { - comment: "var(--syntax-comment)", - string: "var(--syntax-string)", - number: "var(--syntax-constant)", - regexp: "var(--syntax-regexp)", - keyword: "var(--syntax-keyword)", - variable: "var(--syntax-variable)", - parameter: "var(--syntax-variable)", - property: "var(--syntax-property)", - function: "var(--syntax-primitive)", - method: "var(--syntax-primitive)", - type: "var(--syntax-type)", - class: "var(--syntax-type)", - namespace: "var(--syntax-type)", - enumMember: "var(--syntax-primitive)", - "variable.constant": "var(--syntax-constant)", - "variable.defaultLibrary": "var(--syntax-unknown)", - }, - } as unknown as ThemeRegistrationResolved) -}) diff --git a/packages/ui/src/components/file-icon.css b/packages/ui/src/components/file-icon.css new file mode 100644 index 0000000000..e650f6dc72 --- /dev/null +++ b/packages/ui/src/components/file-icon.css @@ -0,0 +1,5 @@ +[data-component="file-icon"] { + flex-shrink: 0; + width: 16px; + height: 16px; +} diff --git a/packages/desktop/src/ui/file-icon.tsx b/packages/ui/src/components/file-icon.tsx similarity index 99% rename from packages/desktop/src/ui/file-icon.tsx rename to packages/ui/src/components/file-icon.tsx index 53b3c1e69d..11465112f2 100644 --- a/packages/desktop/src/ui/file-icon.tsx +++ b/packages/ui/src/components/file-icon.tsx @@ -1,7 +1,7 @@ import type { Component, JSX } from "solid-js" import { createMemo, splitProps } from "solid-js" -import sprite from "@/ui/file-icons/sprite.svg" -import type { IconName } from "@/ui/file-icons/types" +import sprite from "./file-icons/sprite.svg" +import type { IconName } from "./file-icons/types" export type FileIconProps = JSX.GSVGAttributes & { node: { path: string; type: "file" | "directory" } @@ -13,10 +13,10 @@ export const FileIcon: Component = (props) => { const name = createMemo(() => chooseIconName(local.node.path, local.node.type, local.expanded || false)) return ( diff --git a/packages/desktop/src/ui/file-icons/sprite.svg b/packages/ui/src/components/file-icons/sprite.svg similarity index 100% rename from packages/desktop/src/ui/file-icons/sprite.svg rename to packages/ui/src/components/file-icons/sprite.svg diff --git a/packages/desktop/src/ui/file-icons/types.ts b/packages/ui/src/components/file-icons/types.ts similarity index 100% rename from packages/desktop/src/ui/file-icons/types.ts rename to packages/ui/src/components/file-icons/types.ts diff --git a/packages/ui/src/components/icon-button.css b/packages/ui/src/components/icon-button.css index 1d9b4be00a..2584541b3d 100644 --- a/packages/ui/src/components/icon-button.css +++ b/packages/ui/src/components/icon-button.css @@ -11,7 +11,7 @@ &[data-variant="primary"] { background-color: var(--icon-strong-base); - [data-slot="icon"] { + [data-slot="icon-button-icon"] { /* color: var(--icon-weak-base); */ color: var(--icon-invert-base); @@ -35,7 +35,7 @@ &:disabled { background-color: var(--icon-strong-disabled); - [data-slot="icon"] { + [data-slot="icon-button-icon"] { color: var(--icon-invert-base); } } @@ -64,7 +64,7 @@ background-color: var(--button-secondary-base); } - [data-slot="icon"] { + [data-slot="icon-button-icon"] { color: var(--icon-strong-base); } } @@ -73,14 +73,14 @@ background-color: transparent; /* color: var(--icon-base); */ - [data-slot="icon"] { + [data-slot="icon-button-icon"] { color: var(--icon-base); } &:hover:not(:disabled) { background-color: var(--surface-raised-base-hover); - /* [data-slot="icon"] { */ + /* [data-slot="icon-button-icon"] { */ /* color: var(--icon-hover); */ /* } */ } @@ -89,13 +89,13 @@ } &:active:not(:disabled) { background-color: var(--surface-raised-base-active); - /* [data-slot="icon"] { */ + /* [data-slot="icon-button-icon"] { */ /* color: var(--icon-active); */ /* } */ } &:selected:not(:disabled) { background-color: var(--surface-raised-base-active); - /* [data-slot="icon"] { */ + /* [data-slot="icon-button-icon"] { */ /* color: var(--icon-selected); */ /* } */ } @@ -115,7 +115,7 @@ /* padding: 0 8px 0 6px; */ gap: 8px; - [data-slot="icon"] { + [data-slot="icon-button-icon"] { height: 16px; width: 16px; } diff --git a/packages/ui/src/components/icon-button.tsx b/packages/ui/src/components/icon-button.tsx index 79a7cb9c91..a3d91d8304 100644 --- a/packages/ui/src/components/icon-button.tsx +++ b/packages/ui/src/components/icon-button.tsx @@ -22,7 +22,11 @@ export function IconButton(props: ComponentProps<"button"> & IconButtonProps) { [split.class ?? ""]: !!split.class, }} > - + ) } diff --git a/packages/ui/src/components/icon.css b/packages/ui/src/components/icon.css index 7f1f183391..14a52bc83d 100644 --- a/packages/ui/src/components/icon.css +++ b/packages/ui/src/components/icon.css @@ -22,7 +22,7 @@ height: 24px; } - [data-slot="svg"] { + [data-slot="icon-svg"] { width: 100%; height: auto; } diff --git a/packages/ui/src/components/icon.tsx b/packages/ui/src/components/icon.tsx index f2594cdaa6..306d796498 100644 --- a/packages/ui/src/components/icon.tsx +++ b/packages/ui/src/components/icon.tsx @@ -165,6 +165,8 @@ const newIcons = { "folder-add-left": ``, "settings-gear": ``, "bubble-5": ``, + github: ``, + discord: ``, } export interface IconProps extends ComponentProps<"svg"> { @@ -179,7 +181,7 @@ export function Icon(props: IconProps) { return (
- + {local.label} - + - {local.description} + {local.description} - + ) } diff --git a/packages/ui/src/components/list.css b/packages/ui/src/components/list.css deleted file mode 100644 index 2136c4f92f..0000000000 --- a/packages/ui/src/components/list.css +++ /dev/null @@ -1,30 +0,0 @@ -[data-component="list"] { - /* overflow-y: auto; */ - - /* Hide scrollbar */ - &::-webkit-scrollbar { - display: none; - } - -ms-overflow-style: none; - scrollbar-width: none; - - [data-slot="item"] { - width: 100%; - margin-bottom: 6px; - padding: 4px 12px; - text-align: left; - - border-radius: var(--radius-md); - transition: background-color 0.2s ease-in-out; - - &[data-active="true"] { - background-color: var(--surface-raised-base-hover); - } - &:hover { - background-color: var(--surface-raised-base-hover); - } - &:focus { - outline: none; - } - } -} diff --git a/packages/ui/src/components/list.tsx b/packages/ui/src/components/list.tsx deleted file mode 100644 index aaba61fdf0..0000000000 --- a/packages/ui/src/components/list.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { ComponentProps, createEffect, createSignal, type JSX } from "solid-js" -import { VirtualizerHandle, VList } from "virtua/solid" -import { createList } from "solid-list" -import { createStore } from "solid-js/store" - -export interface ListProps { - data: T[] - children: (x: T) => JSX.Element - key: (x: T) => string - current?: T - onSelect?: (value: T | undefined) => void - onHover?: (value: T | undefined) => void - class?: ComponentProps<"div">["class"] -} - -export function List(props: ListProps) { - const [virtualizer, setVirtualizer] = createSignal(undefined) - const [store, setStore] = createStore({ - mouseActive: false, - }) - const list = createList({ - items: () => props.data.map(props.key), - initialActive: props.current ? props.key(props.current) : undefined, - loop: true, - }) - - createEffect(() => { - if (props.current) list.setActive(props.key(props.current)) - }) - // const resetSelection = () => { - // if (props.data.length === 0) return - // list.setActive(props.key(props.data[0])) - // } - const handleSelect = (item: T) => { - props.onSelect?.(item) - list.setActive(props.key(item)) - } - - const handleKey = (e: KeyboardEvent) => { - setStore("mouseActive", false) - - if (e.key === "Enter") { - e.preventDefault() - const selected = props.data.find((x) => props.key(x) === list.active()) - if (selected) handleSelect(selected) - } else { - list.onKeyDown(e) - } - } - - createEffect(() => { - if (store.mouseActive || props.data.length === 0) return - const index = props.data.findIndex((x) => props.key(x) === list.active()) - props.onHover?.(props.data[index]) - if (index === 0) { - virtualizer()?.scrollTo(0) - return - } - // virtualizer()?.scrollTo(list.active()) - // const element = virtualizer()?.querySelector(`[data-key="${list.active()}"]`) - // element?.scrollIntoView({ block: "nearest", behavior: "smooth" }) - }) - - return ( - - {(item) => ( - - )} - - ) -} diff --git a/packages/ui/src/components/logo.css b/packages/ui/src/components/logo.css index 36e871859e..a909782b77 100644 --- a/packages/ui/src/components/logo.css +++ b/packages/ui/src/components/logo.css @@ -1,4 +1,4 @@ [data-component="logo-mark"] { width: 16px; - height: 20px; + aspect-ratio: 4/5; } diff --git a/packages/ui/src/components/logo.tsx b/packages/ui/src/components/logo.tsx index d3588f3011..5ddf3fba32 100644 --- a/packages/ui/src/components/logo.tsx +++ b/packages/ui/src/components/logo.tsx @@ -7,8 +7,38 @@ export const Mark = (props: { class?: string }) => { fill="none" xmlns="http://www.w3.org/2000/svg" > - - + + + + ) +} + +export const Logo = (props: { class?: string }) => { + return ( + + + + + + + + + + + + + + + + + + + ) } diff --git a/packages/ui/src/components/message-part.css b/packages/ui/src/components/message-part.css index 2ca0aaae5f..dd61661122 100644 --- a/packages/ui/src/components/message-part.css +++ b/packages/ui/src/components/message-part.css @@ -34,18 +34,18 @@ align-items: start; gap: 8px; - [data-slot="tool-error-icon"] { + [data-slot="message-part-tool-error-icon"] { color: var(--icon-critical-base); margin-top: 4px; } - [data-slot="tool-error-content"] { + [data-slot="message-part-tool-error-content"] { display: flex; align-items: start; gap: 8px; } - [data-slot="tool-error-title"] { + [data-slot="message-part-tool-error-title"] { font-family: var(--font-family-sans); font-size: var(--font-size-small); font-style: normal; @@ -56,7 +56,7 @@ white-space: nowrap; } - [data-slot="tool-error-message"] { + [data-slot="message-part-tool-error-message"] { color: var(--text-on-critical-weak); } } @@ -72,13 +72,13 @@ justify-content: space-between; width: 100%; - [data-slot="title-area"] { + [data-slot="message-part-title-area"] { display: flex; align-items: center; gap: 8px; } - [data-slot="title"] { + [data-slot="message-part-title"] { font-family: var(--font-family-sans); font-size: var(--font-size-small); font-style: normal; @@ -89,19 +89,19 @@ text-transform: capitalize; } - [data-slot="path"] { + [data-slot="message-part-path"] { display: flex; } - [data-slot="directory"] { + [data-slot="message-part-directory"] { color: var(--text-weak); } - [data-slot="filename"] { + [data-slot="message-part-filename"] { color: var(--text-strong); } - [data-slot="actions"] { + [data-slot="message-part-actions"] { display: flex; gap: 16px; align-items: center; @@ -127,7 +127,7 @@ flex-direction: column; gap: 8px; - [data-slot="todo-content"] { + [data-slot="message-part-todo-content"] { &[data-completed="completed"] { text-decoration: line-through; color: var(--text-weaker); diff --git a/packages/ui/src/components/message-part.tsx b/packages/ui/src/components/message-part.tsx index 74d9a31137..dd920f1018 100644 --- a/packages/ui/src/components/message-part.tsx +++ b/packages/ui/src/components/message-part.tsx @@ -141,16 +141,16 @@ PART_MAPPING["tool"] = function ToolPartDisplay(props) { return (
- + -
-
{title}
- {rest.join(": ")} +
+
{title}
+ {rest.join(": ")}
- {cleaned} + {cleaned}
@@ -340,16 +340,16 @@ ToolRegistry.register({ icon="code-lines" trigger={
-
-
Edit
-
+
+
Edit
+
- {getDirectory(props.input.filePath!)} + {getDirectory(props.input.filePath!)} - {getFilename(props.input.filePath ?? "")} + {getFilename(props.input.filePath ?? "")}
-
+
@@ -384,16 +384,16 @@ ToolRegistry.register({ icon="code-lines" trigger={
-
-
Write
-
+
+
Write
+
- {getDirectory(props.input.filePath!)} + {getDirectory(props.input.filePath!)} - {getFilename(props.input.filePath ?? "")} + {getFilename(props.input.filePath ?? "")}
-
{/* */}
+
{/* */}
} > @@ -421,7 +421,7 @@ ToolRegistry.register({ {(todo: any) => ( -
+
{todo.content}
diff --git a/packages/ui/src/components/message-progress.css b/packages/ui/src/components/message-progress.css new file mode 100644 index 0000000000..0b84e0393c --- /dev/null +++ b/packages/ui/src/components/message-progress.css @@ -0,0 +1,50 @@ +[data-component="message-progress"] { + display: flex; + flex-direction: column; + gap: 12px; +} + +[data-component="message-progress"] [data-slot="message-progress-status"] { + display: flex; + align-items: center; + column-gap: 20px; + padding-left: 12px; + border: 1px solid transparent; + color: var(--text-base); +} + +[data-component="message-progress"] [data-slot="message-progress-status-text"] { + font-size: 12px; + font-weight: 500; + line-height: 1.5; +} + +[data-component="message-progress"] [data-slot="message-progress-list-container"] { + height: 120px; + overflow: hidden; + pointer-events: none; + padding-bottom: 4px; + + mask-image: linear-gradient(to bottom, transparent 0%, black 33%, black 95%, transparent 100%); + -webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 33%, black 95%, transparent 100%); +} + +[data-component="message-progress"] [data-slot="message-progress-list"] { + width: 100%; + display: flex; + flex-direction: column; + align-items: flex-start; + align-self: stretch; + gap: 8px; + padding-top: 32px; + padding-bottom: 32px; + + transition: transform 500ms cubic-bezier(0.22, 1, 0.36, 1); +} + +[data-component="message-progress"] [data-slot="message-progress-item"] { + height: 32px; + display: flex; + align-items: center; + width: 100%; +} diff --git a/packages/desktop/src/components/message-progress.tsx b/packages/ui/src/components/message-progress.tsx similarity index 67% rename from packages/desktop/src/components/message-progress.tsx rename to packages/ui/src/components/message-progress.tsx index a9be2ae5e3..48a2345353 100644 --- a/packages/desktop/src/components/message-progress.tsx +++ b/packages/ui/src/components/message-progress.tsx @@ -1,12 +1,13 @@ import { For, JSXElement, Match, Show, Switch, createEffect, createMemo, createSignal, onCleanup } from "solid-js" -import { Part } from "@opencode-ai/ui" -import { useSync } from "@/context/sync" -import type { AssistantMessage as AssistantMessageType, ToolPart } from "@opencode-ai/sdk" +import { Part } from "./message-part" import { Spinner } from "./spinner" +import { useData } from "../context/data" +import type { AssistantMessage as AssistantMessageType, ToolPart } from "@opencode-ai/sdk" +import "./message-progress.css" export function MessageProgress(props: { assistantMessages: () => AssistantMessageType[]; done?: boolean }) { - const sync = useSync() - const parts = createMemo(() => props.assistantMessages().flatMap((m) => sync.data.part[m.id])) + const data = useData() + const parts = createMemo(() => props.assistantMessages().flatMap((m) => data.part[m.id])) const done = createMemo(() => props.done ?? false) const currentTask = createMemo( () => @@ -26,25 +27,27 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa let resolved = parts() const task = currentTask() if (task && task.state && "metadata" in task.state && task.state.metadata?.sessionId) { - const messages = sync.data.message[task.state.metadata.sessionId as string]?.filter((m) => m.role === "assistant") - resolved = messages?.flatMap((m) => sync.data.part[m.id]) ?? parts() + const messages = data.message[task.state.metadata.sessionId as string]?.filter((m) => m.role === "assistant") + resolved = messages?.flatMap((m) => data.part[m.id]) ?? parts() } return resolved }) - // const currentText = createMemo( - // () => - // resolvedParts().findLast((p) => p?.type === "text")?.text || - // resolvedParts().findLast((p) => p?.type === "reasoning")?.text, - // ) + const eligibleItems = createMemo(() => { return resolvedParts().filter((p) => p?.type === "tool" && p?.state.status === "completed") as ToolPart[] }) const finishedItems = createMemo<(JSXElement | ToolPart)[]>(() => [ -
, -
, -
, +
, +
, +
, ...eligibleItems(), - ...(done() ? [
,
,
] : []), + ...(done() + ? [ +
, +
, +
, + ] + : []), ]) const delay = createMemo(() => (done() ? 220 : 400)) @@ -132,31 +135,13 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa }) return ( -
- {/* */} - {/* {(text) => ( */} - {/*
*/} - {/* */} - {/*
*/} - {/* )} */} - {/*
*/} -
- {status() ?? "Considering next steps..."} +
+
+ {status() ?? "Considering next steps..."}
0}> -
-
+
+
{(part) => ( @@ -164,17 +149,17 @@ export function MessageProgress(props: { assistantMessages: () => AssistantMessa {(p) => { const part = p() as ToolPart const message = createMemo(() => - sync.data.message[part.sessionID].find((m) => m.id === part.messageID), + data.message[part.sessionID].find((m) => m.id === part.messageID), ) return ( -
+
) }} -
{part as JSXElement}
+
{part as JSXElement}
)} diff --git a/packages/ui/src/components/progress-circle.css b/packages/ui/src/components/progress-circle.css index 5918251837..afaf72af61 100644 --- a/packages/ui/src/components/progress-circle.css +++ b/packages/ui/src/components/progress-circle.css @@ -1,11 +1,11 @@ [data-component="progress-circle"] { transform: rotate(-90deg); - [data-slot="background"] { + [data-slot="progress-circle-background"] { stroke: var(--border-weak-base); } - [data-slot="progress"] { + [data-slot="progress-circle-progress"] { stroke: var(--border-active); transition: stroke-dashoffset 0.35s cubic-bezier(0.65, 0, 0.35, 1); } diff --git a/packages/ui/src/components/progress-circle.tsx b/packages/ui/src/components/progress-circle.tsx index f2e497fe55..02bd36bb71 100644 --- a/packages/ui/src/components/progress-circle.tsx +++ b/packages/ui/src/components/progress-circle.tsx @@ -36,12 +36,18 @@ export function ProgressCircle(props: ProgressCircleProps) { [split.class ?? ""]: !!split.class, }} > - + extends FilteredListProps, @@ -83,10 +86,10 @@ export function SelectDialog(props: SelectDialogProps) {
-
- +
+ handleInput(value)} @@ -101,7 +104,7 @@ export function SelectDialog(props: SelectDialogProps) {
{ @@ -115,24 +118,25 @@ export function SelectDialog(props: SelectDialogProps) { 0} fallback={ -
-
- {props.emptyMessage ?? "No search results"} for "{filter()}" +
+
+ {props.emptyMessage ?? "No search results"} for{" "} + "{filter()}"
} > {(group) => ( -
+
-
{group.category}
+
{group.category}
-
+
{(item) => ( + {props.actions} +
+
+ + + {(diff) => ( + + + +
+
+ +
+ + {getDirectory(diff.file)}‎ + + {getFilename(diff.file)} +
+
+
+ + +
+
+
+
+ + + +
+ )} +
+
+
+ ) +} diff --git a/packages/ui/src/components/session-timeline.css b/packages/ui/src/components/session-timeline.css new file mode 100644 index 0000000000..e86e80e6e3 --- /dev/null +++ b/packages/ui/src/components/session-timeline.css @@ -0,0 +1,324 @@ +[data-component="session-timeline"] { + /* flex: 1; */ + min-height: 0; + display: flex; + align-items: flex-start; + justify-content: flex-start; + + [data-slot="session-timeline-timeline-list"] { + margin-right: 32px; + flex-shrink: 0; + display: flex; + flex-direction: column; + align-items: flex-start; + margin-top: 12px; + + &[data-expanded="true"] { + position: absolute; + right: 100%; + width: 240px; + margin-top: 12px; + + @media (min-width: 80rem) { + gap: 8px; + margin-top: 4px; + } + } + } + + [data-slot="session-timeline-timeline-item"] { + display: flex; + align-items: center; + align-self: stretch; + justify-content: flex-end; + + &[data-expanded="true"] { + @media (min-width: 80rem) { + justify-content: flex-start; + } + } + } + + [data-slot="session-timeline-tick-button"] { + display: flex; + align-items: center; + justify-content: flex-start; + height: 8px; + width: 32px; + margin-right: -12px; + cursor: pointer; + border: none; + background: none; + padding: 0; + + &[data-active="true"] [data-slot="session-timeline-tick-line"] { + background-color: var(--icon-strong-base); + width: 100%; + } + + &[data-expanded="true"] { + @media (min-width: 80rem) { + display: none; + } + } + } + + [data-slot="session-timeline-tick-line"] { + height: 1px; + width: 20px; + background-color: var(--icon-base); + transition: + width 0.2s, + background-color 0.2s; + } + + [data-slot="session-timeline-tick-button"]:hover [data-slot="session-timeline-tick-line"] { + width: 100%; + background-color: var(--icon-strong-base); + } + + [data-slot="session-timeline-message-button"] { + display: none; + align-items: center; + align-self: stretch; + width: 100%; + column-gap: 8px; + cursor: default; + border: none; + background: none; + padding: 0; + + &[data-expanded="true"] { + @media (min-width: 80rem) { + display: flex; + } + } + } + + [data-slot="session-timeline-message-title-preview"] { + font-size: 14px; /* text-14-regular */ + color: var(--text-weak); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + text-align: left; + + &[data-active="true"] { + color: var(--text-strong); + } + } + + [data-slot="session-timeline-timeline-item"]:hover [data-slot="session-timeline-message-title-preview"] { + color: var(--text-base); + } + + [data-slot="session-timeline-content"] { + flex-grow: 1; + width: 100%; + height: 100%; + min-width: 0; + overflow-y: auto; + scrollbar-width: none; + } + + [data-slot="session-timeline-content"]::-webkit-scrollbar { + display: none; + } + + [data-slot="session-timeline-message-container"] { + display: flex; + flex-direction: column; + align-items: flex-start; + align-self: stretch; + gap: 32px; + } + + [data-slot="session-timeline-message-header"] { + display: flex; + align-items: center; + gap: 8px; + align-self: stretch; + position: sticky; + top: 0; + background-color: var(--background-stronger); + z-index: 20; + height: 32px; + } + + [data-slot="session-timeline-message-content"] { + margin-top: -24px; + } + + [data-slot="session-timeline-message-title"] { + width: 100%; + font-size: 14px; /* text-14-medium */ + font-weight: 500; + color: var(--text-strong); + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + white-space: nowrap; + } + + [data-slot="session-timeline-message-title"] h1 { + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + white-space: nowrap; + font-size: inherit; + font-weight: inherit; + } + + [data-slot="session-timeline-typewriter"] { + overflow: hidden; + text-overflow: ellipsis; + min-width: 0; + white-space: nowrap; + } + + [data-slot="session-timeline-summary-section"] { + width: 100%; + display: flex; + flex-direction: column; + gap: 24px; + align-items: flex-start; + align-self: stretch; + } + + [data-slot="session-timeline-summary-header"] { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 4px; + align-self: stretch; + } + + [data-slot="session-timeline-summary-title"] { + font-size: 12px; /* text-12-medium */ + font-weight: 500; + color: var(--text-weak); + } + + [data-slot="session-timeline-markdown"] { + &[data-diffs="true"] { + font-size: 14px; /* text-14-regular */ + } + + &[data-fade="true"] > * { + animation: fade-up-text 0.3s ease-out forwards; + } + } + + [data-slot="session-timeline-accordion"] { + width: 100%; + } + + [data-component="sticky-accordion-header"] { + top: 40px; + + &[data-expanded]::before { + top: -40px; + } + } + + [data-slot="session-timeline-accordion-trigger-content"] { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + gap: 20px; + } + + [data-slot="session-timeline-file-info"] { + flex-grow: 1; + display: flex; + align-items: center; + gap: 20px; + min-width: 0; + } + + [data-slot="session-timeline-file-icon"] { + flex-shrink: 0; + width: 16px; + height: 16px; + } + + [data-slot="session-timeline-file-path"] { + display: flex; + flex-grow: 1; + min-width: 0; + } + + [data-slot="session-timeline-directory"] { + color: var(--text-base); + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + direction: rtl; + text-align: left; + } + + [data-slot="session-timeline-filename"] { + color: var(--text-strong); + flex-shrink: 0; + } + + [data-slot="session-timeline-accordion-actions"] { + flex-shrink: 0; + display: flex; + gap: 16px; + align-items: center; + justify-content: flex-end; + } + + [data-slot="session-timeline-accordion-content"] { + max-height: 240px; /* max-h-60 */ + overflow-y: auto; + scrollbar-width: none; + } + + [data-slot="session-timeline-accordion-content"]::-webkit-scrollbar { + display: none; + } + + [data-slot="session-timeline-response-section"] { + width: 100%; + } + + [data-slot="session-timeline-collapsible-trigger-content"] { + color: var(--text-weak); + cursor: pointer; + background: none; + border: none; + padding: 0; + display: flex; + align-items: center; + + &:hover { + color: var(--text-strong); + } + display: flex; + align-items: center; + gap: 4px; + align-self: stretch; + } + + [data-slot="session-timeline-details-text"] { + font-size: 12px; /* text-12-medium */ + font-weight: 500; + } + + .error-card { + color: var(--text-on-critical-base); + } + + [data-slot="session-timeline-collapsible-content-inner"] { + width: 100%; + display: flex; + flex-direction: column; + align-items: flex-start; + align-self: stretch; + gap: 12px; + } +} diff --git a/packages/ui/src/components/session-timeline.tsx b/packages/ui/src/components/session-timeline.tsx new file mode 100644 index 0000000000..5d451b39d6 --- /dev/null +++ b/packages/ui/src/components/session-timeline.tsx @@ -0,0 +1,289 @@ +import { AssistantMessage } from "@opencode-ai/sdk" +import { useData } from "../context" +import { Binary } from "@opencode-ai/util/binary" +import { getDirectory, getFilename } from "@opencode-ai/util/path" +import { createEffect, createMemo, createSignal, For, Match, ParentProps, Show, Switch } from "solid-js" +import { createStore } from "solid-js/store" +import { DiffChanges } from "./diff-changes" +import { Spinner } from "./spinner" +import { Typewriter } from "./typewriter" +import { Message } from "./message-part" +import { Markdown } from "./markdown" +import { Accordion } from "./accordion" +import { StickyAccordionHeader } from "./sticky-accordion-header" +import { FileIcon } from "./file-icon" +import { Icon } from "./icon" +import { Diff } from "./diff" +import { Card } from "./card" +import { MessageProgress } from "./message-progress" +import { Collapsible } from "./collapsible" + +export function SessionTimeline( + props: ParentProps<{ + sessionID: string + classes?: { + root?: string + content?: string + container?: string + } + expanded?: boolean + }>, +) { + const data = useData() + const [store, setStore] = createStore({ + messageId: undefined as string | undefined, + }) + const match = Binary.search(data.session, props.sessionID, (s) => s.id) + if (!match.found) throw new Error(`Session ${props.sessionID} not found`) + + // const info = createMemo(() => data.session[match.index]) + const messages = createMemo(() => (props.sessionID ? (data.message[props.sessionID] ?? []) : [])) + const userMessages = createMemo(() => + messages() + .filter((m) => m.role === "user") + .sort((a, b) => b.id.localeCompare(a.id)), + ) + const lastUserMessage = createMemo(() => { + return userMessages()?.at(0) + }) + const activeMessage = createMemo(() => { + if (!store.messageId) return lastUserMessage() + return userMessages()?.find((m) => m.id === store.messageId) + }) + const status = createMemo( + () => + data.session_status[props.sessionID] ?? { + type: "idle", + }, + ) + const working = createMemo(() => status()?.type !== "idle") + + return ( +
+ 1}> +
    + + {(message) => { + const messageWorking = createMemo(() => message.id === lastUserMessage()?.id && working()) + const handleClick = () => setStore("messageId", message.id) + + return ( +
  • + + +
  • + ) + }} +
    +
+
+
+ + {(message) => { + const isActive = createMemo(() => activeMessage()?.id === message.id) + const titleSeen = createMemo(() => true) + const contentSeen = createMemo(() => true) + { + /* const titleSeen = createSeen(`message-title-${message.id}`) */ + } + { + /* const contentSeen = createSeen(`message-content-${message.id}`) */ + } + const [titled, setTitled] = createSignal(titleSeen()) + const assistantMessages = createMemo(() => { + return messages()?.filter((m) => m.role === "assistant" && m.parentID == message.id) as AssistantMessage[] + }) + const error = createMemo(() => assistantMessages().find((m) => m?.error)?.error) + const [detailsExpanded, setDetailsExpanded] = createSignal(false) + const parts = createMemo(() => data.part[message.id]) + const hasToolPart = createMemo(() => + assistantMessages() + ?.flatMap((m) => data.part[m.id]) + .some((p) => p?.type === "tool"), + ) + const messageWorking = createMemo(() => message.id === lastUserMessage()?.id && working()) + const initialCompleted = !(message.id === lastUserMessage()?.id && working()) + const [completed, setCompleted] = createSignal(initialCompleted) + + // allowing time for the animations to finish + createEffect(() => { + if (titleSeen()) return + const title = message.summary?.title + if (title) setTimeout(() => setTitled(true), 10_000) + }) + createEffect(() => { + const completed = !messageWorking() + setTimeout(() => setCompleted(completed), 1200) + }) + + return ( + +
+ {/* Title */} +
+
+ + } + > +

{message.summary?.title}

+
+
+
+
+ +
+ {/* Summary */} + +
+
+

+ + Summary + Response + +

+ + {(summary) => ( + + )} + +
+ + + {(diff) => ( + + + +
+
+ +
+ + + {getDirectory(diff.file)}‎ + + + {getFilename(diff.file)} +
+
+
+ + +
+
+
+
+ + + +
+ )} +
+
+
+
+ + + {error()?.data?.message as string} + + + {/* Response */} +
+ + + + + + + +
+
+ + Hide details + Show details + +
+ +
+
+ +
+ + {(assistantMessage) => { + const parts = createMemo(() => data.part[assistantMessage.id]) + return + }} + + + + {error()?.data?.message as string} + + +
+
+
+
+
+
+
+
+ ) + }} +
+ {props.children} +
+
+ ) +} diff --git a/packages/ui/src/components/spinner.css b/packages/ui/src/components/spinner.css new file mode 100644 index 0000000000..6b432d045d --- /dev/null +++ b/packages/ui/src/components/spinner.css @@ -0,0 +1,6 @@ +[data-component="spinner"] { + color: var(--text-base); + flex-shrink: 0; + width: 18px; + aspect-ratio: 1; +} diff --git a/packages/desktop/src/components/spinner.tsx b/packages/ui/src/components/spinner.tsx similarity index 96% rename from packages/desktop/src/components/spinner.tsx rename to packages/ui/src/components/spinner.tsx index 5fc4cda640..5e787d86b5 100644 --- a/packages/desktop/src/components/spinner.tsx +++ b/packages/ui/src/components/spinner.tsx @@ -12,8 +12,8 @@ export function Spinner(props: { class?: string; classList?: ComponentProps<"div return ( }>, +) { + return ( + + {props.children} + + ) +} diff --git a/packages/ui/src/components/tabs.css b/packages/ui/src/components/tabs.css index 91efbe50d9..d03e57320f 100644 --- a/packages/ui/src/components/tabs.css +++ b/packages/ui/src/components/tabs.css @@ -6,7 +6,7 @@ background-color: var(--background-stronger); overflow: clip; - [data-slot="tabs-list"] { + [data-slot="tabs-tabs-list"] { height: 48px; width: 100%; position: relative; @@ -36,7 +36,7 @@ } } - [data-slot="tabs-trigger-wrapper"] { + [data-slot="tabs-tabs-trigger-wrapper"] { position: relative; height: 100%; display: flex; @@ -58,14 +58,14 @@ border-right: 1px solid var(--border-weak-base); background-color: var(--background-base); - [data-slot="tabs-trigger"] { + [data-slot="tabs-tabs-trigger"] { display: flex; align-items: center; justify-content: center; padding: 14px 24px; } - [data-slot="tabs-trigger-close-button"] { + [data-slot="tabs-tabs-trigger-close-button"] { display: flex; align-items: center; justify-content: center; @@ -84,12 +84,12 @@ box-shadow: 0 0 0 2px var(--border-focus); } &:has([data-hidden]) { - [data-slot="tabs-trigger-close-button"] { + [data-slot="tabs-tabs-trigger-close-button"] { opacity: 0; } &:hover { - [data-slot="tabs-trigger-close-button"] { + [data-slot="tabs-tabs-trigger-close-button"] { opacity: 1; } } @@ -98,23 +98,23 @@ color: var(--text-strong); background-color: transparent; border-bottom-color: transparent; - [data-slot="tabs-trigger-close-button"] { + [data-slot="tabs-tabs-trigger-close-button"] { opacity: 1; } } &:hover:not(:disabled):not([data-selected]) { color: var(--text-strong); } - &:has([data-slot="tabs-trigger-close-button"]) { + &:has([data-slot="tabs-tabs-trigger-close-button"]) { padding-right: 12px; - [data-slot="tabs-trigger"] { + [data-slot="tabs-tabs-trigger"] { padding-right: 0; } } } - [data-slot="tabs-content"] { + [data-slot="tabs-tabs-content"] { overflow-y: auto; flex: 1; diff --git a/packages/ui/src/components/tabs.tsx b/packages/ui/src/components/tabs.tsx index e2f72f1584..e3363bdd56 100644 --- a/packages/ui/src/components/tabs.tsx +++ b/packages/ui/src/components/tabs.tsx @@ -29,7 +29,7 @@ function TabsList(props: TabsListProps) { return ( ) { const [split, rest] = splitProps(props, ["class", "classList", "children", "closeButton", "hideCloseButton"]) return (
- + {split.children} {(closeButton) => ( -
+
{closeButton()}
)} @@ -67,7 +67,7 @@ function TabsContent(props: ParentProps) { return ( { @@ -14,7 +14,7 @@ export function Tooltip(props: TooltipProps) { const c = children(() => local.children) - createEffect(() => { + onMount(() => { const childElements = c() if (childElements instanceof HTMLElement) { childElements.addEventListener("focus", () => setOpen(true)) @@ -40,7 +40,7 @@ export function Tooltip(props: TooltipProps) { {others.value} - {/* */} + {/* */} diff --git a/packages/ui/src/context/data.tsx b/packages/ui/src/context/data.tsx new file mode 100644 index 0000000000..a32349a861 --- /dev/null +++ b/packages/ui/src/context/data.tsx @@ -0,0 +1,25 @@ +import type { Message, Session, Part, FileDiff, SessionStatus } from "@opencode-ai/sdk" +import { createSimpleContext } from "./helper" + +type Data = { + session: Session[] + session_status: { + [sessionID: string]: SessionStatus + } + session_diff: { + [sessionID: string]: FileDiff[] + } + message: { + [sessionID: string]: Message[] + } + part: { + [messageID: string]: Part[] + } +} + +export const { use: useData, provider: DataProvider } = createSimpleContext({ + name: "Data", + init: (props: { data: Data }) => { + return props.data + }, +}) diff --git a/packages/ui/src/context/index.ts b/packages/ui/src/context/index.ts new file mode 100644 index 0000000000..fdff32bf2a --- /dev/null +++ b/packages/ui/src/context/index.ts @@ -0,0 +1,2 @@ +export * from "./helper" +export * from "./data" diff --git a/packages/ui/src/context/marked.tsx b/packages/ui/src/context/marked.tsx index 804d449c58..0d9c447586 100644 --- a/packages/ui/src/context/marked.tsx +++ b/packages/ui/src/context/marked.tsx @@ -2,9 +2,377 @@ import { marked } from "marked" import markedShiki from "marked-shiki" import { bundledLanguages, type BundledLanguage } from "shiki" import { createSimpleContext } from "./helper" -import { getSharedHighlighter } from "@pierre/precision-diffs" +import { getSharedHighlighter, registerCustomTheme, ThemeRegistrationResolved } from "@pierre/precision-diffs" -const highlighter = await getSharedHighlighter({ themes: ["OpenCode"], langs: [] }) +registerCustomTheme("OpenCode", () => { + return Promise.resolve({ + name: "OpenCode", + colors: { + "editor.background": "transparent", + "editor.foreground": "var(--text-base)", + "gitDecoration.addedResourceForeground": "var(--syntax-diff-add)", + "gitDecoration.deletedResourceForeground": "var(--syntax-diff-delete)", + // "gitDecoration.conflictingResourceForeground": "#ffca00", + // "gitDecoration.modifiedResourceForeground": "#1a76d4", + // "gitDecoration.untrackedResourceForeground": "#00cab1", + // "gitDecoration.ignoredResourceForeground": "#84848A", + // "terminal.titleForeground": "#adadb1", + // "terminal.titleInactiveForeground": "#84848A", + // "terminal.background": "#141415", + // "terminal.foreground": "#adadb1", + // "terminal.ansiBlack": "#141415", + // "terminal.ansiRed": "#ff2e3f", + // "terminal.ansiGreen": "#0dbe4e", + // "terminal.ansiYellow": "#ffca00", + // "terminal.ansiBlue": "#008cff", + // "terminal.ansiMagenta": "#c635e4", + // "terminal.ansiCyan": "#08c0ef", + // "terminal.ansiWhite": "#c6c6c8", + // "terminal.ansiBrightBlack": "#141415", + // "terminal.ansiBrightRed": "#ff2e3f", + // "terminal.ansiBrightGreen": "#0dbe4e", + // "terminal.ansiBrightYellow": "#ffca00", + // "terminal.ansiBrightBlue": "#008cff", + // "terminal.ansiBrightMagenta": "#c635e4", + // "terminal.ansiBrightCyan": "#08c0ef", + // "terminal.ansiBrightWhite": "#c6c6c8", + }, + tokenColors: [ + { + scope: ["comment", "punctuation.definition.comment", "string.comment"], + settings: { + foreground: "var(--syntax-comment)", + }, + }, + { + scope: ["entity.other.attribute-name"], + settings: { + foreground: "var(--syntax-property)", // maybe attribute + }, + }, + { + scope: ["constant", "entity.name.constant", "variable.other.constant", "variable.language", "entity"], + settings: { + foreground: "var(--syntax-constant)", + }, + }, + { + scope: ["entity.name", "meta.export.default", "meta.definition.variable"], + settings: { + foreground: "var(--syntax-type)", + }, + }, + { + scope: ["meta.object.member"], + settings: { + foreground: "var(--syntax-primitive)", + }, + }, + { + scope: [ + "variable.parameter.function", + "meta.jsx.children", + "meta.block", + "meta.tag.attributes", + "entity.name.constant", + "meta.embedded.expression", + "meta.template.expression", + "string.other.begin.yaml", + "string.other.end.yaml", + ], + settings: { + foreground: "var(--syntax-punctuation)", + }, + }, + { + scope: ["entity.name.function", "support.type.primitive"], + settings: { + foreground: "var(--syntax-primitive)", + }, + }, + { + scope: ["support.class.component"], + settings: { + foreground: "var(--syntax-type)", + }, + }, + { + scope: "keyword", + settings: { + foreground: "var(--syntax-keyword)", + }, + }, + { + scope: [ + "keyword.operator", + "storage.type.function.arrow", + "punctuation.separator.key-value.css", + "entity.name.tag.yaml", + "punctuation.separator.key-value.mapping.yaml", + ], + settings: { + foreground: "var(--syntax-operator)", + }, + }, + { + scope: ["storage", "storage.type"], + settings: { + foreground: "var(--syntax-keyword)", + }, + }, + { + scope: ["storage.modifier.package", "storage.modifier.import", "storage.type.java"], + settings: { + foreground: "var(--syntax-primitive)", + }, + }, + { + scope: [ + "string", + "punctuation.definition.string", + "string punctuation.section.embedded source", + "entity.name.tag", + ], + settings: { + foreground: "var(--syntax-string)", + }, + }, + { + scope: "support", + settings: { + foreground: "var(--syntax-primitive)", + }, + }, + { + scope: ["support.type.object.module", "variable.other.object", "support.type.property-name.css"], + settings: { + foreground: "var(--syntax-object)", + }, + }, + { + scope: "meta.property-name", + settings: { + foreground: "var(--syntax-property)", + }, + }, + { + scope: "variable", + settings: { + foreground: "var(--syntax-variable)", + }, + }, + { + scope: "variable.other", + settings: { + foreground: "var(--syntax-variable)", + }, + }, + { + scope: [ + "invalid.broken", + "invalid.illegal", + "invalid.unimplemented", + "invalid.deprecated", + "message.error", + "markup.deleted", + "meta.diff.header.from-file", + "punctuation.definition.deleted", + "brackethighlighter.unmatched", + "token.error-token", + ], + settings: { + foreground: "var(--syntax-critical)", + }, + }, + { + scope: "carriage-return", + settings: { + foreground: "var(--syntax-keyword)", + }, + }, + { + scope: "string source", + settings: { + foreground: "var(--syntax-variable)", + }, + }, + { + scope: "string variable", + settings: { + foreground: "var(--syntax-constant)", + }, + }, + { + scope: [ + "source.regexp", + "string.regexp", + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition", + "string.regexp constant.character.escape", + ], + settings: { + foreground: "var(--syntax-regexp)", + }, + }, + { + scope: "support.constant", + settings: { + foreground: "var(--syntax-primitive)", + }, + }, + { + scope: "support.variable", + settings: { + foreground: "var(--syntax-variable)", + }, + }, + { + scope: "meta.module-reference", + settings: { + foreground: "var(--syntax-info)", + }, + }, + { + scope: "punctuation.definition.list.begin.markdown", + settings: { + foreground: "var(--syntax-punctuation)", + }, + }, + { + scope: ["markup.heading", "markup.heading entity.name"], + settings: { + fontStyle: "bold", + foreground: "var(--syntax-info)", + }, + }, + { + scope: "markup.quote", + settings: { + foreground: "var(--syntax-info)", + }, + }, + { + scope: "markup.italic", + settings: { + fontStyle: "italic", + // foreground: "", + }, + }, + { + scope: "markup.bold", + settings: { + fontStyle: "bold", + foreground: "var(--text-strong)", + }, + }, + { + scope: [ + "markup.raw", + "markup.inserted", + "meta.diff.header.to-file", + "punctuation.definition.inserted", + "markup.changed", + "punctuation.definition.changed", + "markup.ignored", + "markup.untracked", + ], + settings: { + foreground: "var(--text-base)", + }, + }, + { + scope: "meta.diff.range", + settings: { + fontStyle: "bold", + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: "meta.diff.header", + settings: { + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: "meta.separator", + settings: { + fontStyle: "bold", + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: "meta.output", + settings: { + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: "meta.export.default", + settings: { + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote", + ], + settings: { + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: ["constant.other.reference.link", "string.other.link"], + settings: { + fontStyle: "underline", + foreground: "var(--syntax-unknown)", + }, + }, + { + scope: "token.info-token", + settings: { + foreground: "var(--syntax-info)", + }, + }, + { + scope: "token.warn-token", + settings: { + foreground: "var(--syntax-warning)", + }, + }, + { + scope: "token.debug-token", + settings: { + foreground: "var(--syntax-info)", + }, + }, + ], + semanticTokenColors: { + comment: "var(--syntax-comment)", + string: "var(--syntax-string)", + number: "var(--syntax-constant)", + regexp: "var(--syntax-regexp)", + keyword: "var(--syntax-keyword)", + variable: "var(--syntax-variable)", + parameter: "var(--syntax-variable)", + property: "var(--syntax-property)", + function: "var(--syntax-primitive)", + method: "var(--syntax-primitive)", + type: "var(--syntax-type)", + class: "var(--syntax-type)", + namespace: "var(--syntax-type)", + enumMember: "var(--syntax-primitive)", + "variable.constant": "var(--syntax-constant)", + "variable.defaultLibrary": "var(--syntax-unknown)", + }, + } as unknown as ThemeRegistrationResolved) +}) export const { use: useMarked, provider: MarkedProvider } = createSimpleContext({ name: "Marked", @@ -12,6 +380,7 @@ export const { use: useMarked, provider: MarkedProvider } = createSimpleContext( return marked.use( markedShiki({ async highlight(code, lang) { + const highlighter = await getSharedHighlighter({ themes: ["OpenCode"], langs: [] }) if (!(lang in bundledLanguages)) { lang = "text" } diff --git a/packages/ui/src/demo.tsx b/packages/ui/src/demo.tsx index 96579c9990..196746ed5b 100644 --- a/packages/ui/src/demo.tsx +++ b/packages/ui/src/demo.tsx @@ -1,22 +1,19 @@ import type { Component } from "solid-js" import { createSignal } from "solid-js" -import { - Accordion, - Button, - Checkbox, - Select, - Tabs, - Tooltip, - Fonts, - List, - Dialog, - Icon, - IconButton, - Input, - SelectDialog, - Collapsible, -} from "./components" import "./index.css" +import { Button } from "./components/button" +import { Select } from "./components/select" +import { Fonts } from "./components/fonts" +import { Accordion } from "./components/accordion" +import { Tabs } from "./components/tabs" +import { Tooltip } from "./components/tooltip" +import { Input } from "./components/input" +import { Checkbox } from "./components/checkbox" +import { Icon } from "./components/icon" +import { IconButton } from "./components/icon-button" +import { Dialog } from "./components/dialog" +import { SelectDialog } from "./components/select-dialog" +import { Collapsible } from "./components/collapsible" const Demo: Component = () => { const [dialogOpen, setDialogOpen] = createSignal(false) @@ -131,11 +128,6 @@ const Demo: Component = () => {

List

-
- x}> - {(x) =>
{x}
} -
-

Input