diff --git a/.github/workflows/adamantite.yml b/.github/workflows/adamantite.yml
index 0061b709..248720b4 100644
--- a/.github/workflows/adamantite.yml
+++ b/.github/workflows/adamantite.yml
@@ -56,8 +56,5 @@ jobs:
- name: Install dependencies
run: bun install --frozen-lockfile
- - name: Generate types
- run: bun run typegen
-
- name: Run ${{ matrix.name }}
run: ${{ matrix.command }}
diff --git a/AGENTS.md b/AGENTS.md
index 8a15efd4..3c857e9b 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -24,7 +24,7 @@
- We use `adamantite` for linting, formatting and type checking.
- `adamantite check` to run linting checks.
- `adamantite format` to format the code.
- - `adamantite typecheck` to type check the code.
+ - `tsc --noEmit` to type check the code.
- `adamantite analyze` to analyze the code for unused dependencies.
- Always run `bun run format` after editing files.
- Run `bun run test` to run the test suite.
diff --git a/apps/api/package.json b/apps/api/package.json
index 9f87bd9b..08938ed9 100644
--- a/apps/api/package.json
+++ b/apps/api/package.json
@@ -13,7 +13,7 @@
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "bun --hot src/index.ts",
"start": "bun --bun src/index.ts",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@arcjet/ip": "^1.0.0-beta.15",
diff --git a/apps/app/package.json b/apps/app/package.json
index 4334cf07..1a57b013 100644
--- a/apps/app/package.json
+++ b/apps/app/package.json
@@ -7,12 +7,13 @@
},
"scripts": {
"build": "bun --bun vite build",
+ "codegen": "paraglide-js compile --project ../../tooling/internationalization/project.inlang --outdir ./src/shared/internationalization",
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "bun --bun vite dev",
"preview": "bun --bun vite preview",
"start": "node .output/server/index.mjs",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/auth": "workspace:*",
diff --git a/apps/desktop/package.json b/apps/desktop/package.json
index 6488b01b..9dc8014d 100644
--- a/apps/desktop/package.json
+++ b/apps/desktop/package.json
@@ -7,10 +7,11 @@
},
"scripts": {
"build": "tauri build",
+ "codegen": "paraglide-js compile --project ../../tooling/internationalization/project.inlang --outdir ./src/shared/internationalization",
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "tauri dev",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 4196bafc..de62f178 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -8,11 +8,12 @@
"scripts": {
"astro": "astro",
"build": "astro build",
+ "codegen": "paraglide-js compile --project ../../tooling/internationalization/project.inlang --outdir ./src/shared/internationalization",
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "astro dev",
"preview": "astro preview",
- "typecheck": "adamantite typecheck",
+ "typecheck": "tsc --noEmit",
"typegen": "astro sync"
},
"dependencies": {
diff --git a/apps/extension/package.json b/apps/extension/package.json
index 261da80d..02a69fae 100644
--- a/apps/extension/package.json
+++ b/apps/extension/package.json
@@ -10,12 +10,13 @@
"build": "wxt build",
"build:firefox": "wxt build -b firefox",
"clean": "git clean -xdf .cache .turbo dist node_modules",
+ "codegen": "paraglide-js compile --project ../../tooling/internationalization/project.inlang --outdir ./src/shared/internationalization",
"compile": "tsc --noEmit",
"bump:deps": "bun update --interactive",
"dev": "wxt",
"dev:firefox": "wxt -b firefox",
"postinstall": "wxt prepare",
- "typecheck": "adamantite typecheck",
+ "typecheck": "tsc --noEmit",
"typegen": "wxt prepare",
"zip": "wxt zip",
"zip:firefox": "wxt zip -b firefox"
diff --git a/apps/extension/src/features/demo/components/popup-demo.tsx b/apps/extension/src/features/demo/components/popup-demo.tsx
index b825c2ac..dc96f800 100644
--- a/apps/extension/src/features/demo/components/popup-demo.tsx
+++ b/apps/extension/src/features/demo/components/popup-demo.tsx
@@ -1,15 +1,15 @@
import { Button } from "@init/ui/components/button"
-import { TypographyH1, TypographyP } from "@init/ui/components/typography"
+import { Typography } from "@init/ui/components/typography"
import { Link } from "wouter"
export default function PopupDemo() {
return (
- Hello!
-
+ Hello!
+
This is a demo of the popup. It is a simple popup that displays a message.
-
+
diff --git a/apps/extension/src/features/demo/components/settings-demo.tsx b/apps/extension/src/features/demo/components/settings-demo.tsx
index 74a141df..914f3d36 100644
--- a/apps/extension/src/features/demo/components/settings-demo.tsx
+++ b/apps/extension/src/features/demo/components/settings-demo.tsx
@@ -1,14 +1,14 @@
import { Button } from "@init/ui/components/button"
-import { TypographyH1, TypographyP } from "@init/ui/components/typography"
+import { Typography } from "@init/ui/components/typography"
import { Link } from "wouter"
export default function SettingsDemo() {
return (
- Settings
-
+ Settings
+
This is a demo of the settings. It is a simple settings that displays a message.
-
+
}>Go back to home
)
diff --git a/apps/mobile/package.json b/apps/mobile/package.json
index cf3121fd..fca2e79a 100644
--- a/apps/mobile/package.json
+++ b/apps/mobile/package.json
@@ -20,7 +20,7 @@
"prebuild": "expo prebuild --clean",
"start": "expo start",
"test": "bun test",
- "typecheck": "adamantite typecheck",
+ "typecheck": "tsc --noEmit",
"web": "expo start --web"
},
"dependencies": {
diff --git a/apps/web/package.json b/apps/web/package.json
index 1ec49121..878bcc98 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -8,11 +8,12 @@
"scripts": {
"astro": "astro",
"build": "astro build",
+ "codegen": "paraglide-js compile --project ../../tooling/internationalization/project.inlang --outdir ./src/shared/internationalization",
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "astro dev",
"preview": "astro preview",
- "typecheck": "adamantite typecheck",
+ "typecheck": "tsc --noEmit",
"typegen": "astro sync"
},
"dependencies": {
diff --git a/bun.lock b/bun.lock
index ceedfee1..259a1f6e 100644
--- a/bun.lock
+++ b/bun.lock
@@ -460,13 +460,13 @@
"@tanstack/react-form": "1.27.7",
"class-variance-authority": "0.7.1",
"cmdk": "1.1.1",
- "date-fns": "4.1.0",
+ "date-fns": "^4.1.0",
"embla-carousel-react": "8.6.0",
"input-otp": "1.4.2",
- "react-day-picker": "9.13.0",
+ "react-day-picker": "^9.13.0",
"react-icons": "5.5.0",
"react-resizable-panels": "3.0.6",
- "recharts": "2.15.4",
+ "recharts": "^3.7.0",
"sonner": "2.0.7",
"vaul": "1.1.2",
},
@@ -1802,6 +1802,8 @@
"@react-navigation/routers": ["@react-navigation/routers@7.5.3", "", { "dependencies": { "nanoid": "^3.3.11" } }, "sha512-1tJHg4KKRJuQ1/EvJxatrMef3NZXEPzwUIUZ3n1yJ2t7Q97siwRtbynRpQG9/69ebbtiZ8W3ScOZF/OmhvM4Rg=="],
+ "@reduxjs/toolkit": ["@reduxjs/toolkit@2.11.2", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@standard-schema/utils": "^0.3.0", "immer": "^11.0.0", "redux": "^5.0.1", "redux-thunk": "^3.1.0", "reselect": "^5.1.0" }, "peerDependencies": { "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "optionalPeers": ["react", "react-redux"] }, "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ=="],
+
"@rn-primitives/avatar": ["@rn-primitives/avatar@1.2.0", "", { "dependencies": { "@rn-primitives/hooks": "1.3.0", "@rn-primitives/slot": "1.2.0", "@rn-primitives/types": "1.2.0" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native", "react-native-web"] }, "sha512-ic029KaJRADdjmjPzpaSaZ9QrtgGF8DnAA7TcQ/gYqUfLXjkbfzsjARKv7NtEoJLjWAcjIAK6R8JkcbMfPtYig=="],
"@rn-primitives/hooks": ["@rn-primitives/hooks@1.3.0", "", { "dependencies": { "@rn-primitives/types": "1.2.0" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native", "react-native-web"] }, "sha512-BR97reSu7uVDpyMeQdRJHT0w8KdS6jdYnOL6xQtqS2q3H6N7vXBlX4LFERqJZphD+aziJFIAJ3HJF1vtt6XlpQ=="],
@@ -1974,6 +1976,8 @@
"@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
+ "@standard-schema/utils": ["@standard-schema/utils@0.3.0", "", {}, "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g=="],
+
"@stripe/agent-toolkit": ["@stripe/agent-toolkit@0.7.12", "", { "dependencies": { "stripe": "^17.5.0", "zod": "^3.24.1", "zod-to-json-schema": "^3.24.3" }, "peerDependencies": { "@langchain/core": "^0.3.6", "@modelcontextprotocol/sdk": "^1.17.1", "agents": "^0.0.84", "ai": "^3.4.7 || ^4.0.0", "openai": "^4.86.1" } }, "sha512-fbtpJAg63INJ2zLlefXuigbWMnMZ33e6J5m/2mep6s8FSsl1pQZtLBZsk2gSp4Ix4199hkS3AG3FSz5diUHXXg=="],
"@stripe/react-stripe-js": ["@stripe/react-stripe-js@5.4.1", "", { "dependencies": { "prop-types": "^15.7.2" }, "peerDependencies": { "@stripe/stripe-js": ">=8.0.0 <9.0.0", "react": ">=16.8.0 <20.0.0", "react-dom": ">=16.8.0 <20.0.0" } }, "sha512-ipeYcAHa4EPmjwfv0lFE+YDVkOQ0TMKkFWamW+BqmnSkEln/hO8rmxGPPWcd9WjqABx6Ro8Xg4pAS7evCcR9cw=="],
@@ -2268,6 +2272,8 @@
"@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
+ "@types/use-sync-external-store": ["@types/use-sync-external-store@0.0.6", "", {}, "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg=="],
+
"@types/uuid": ["@types/uuid@10.0.0", "", {}, "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ=="],
"@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="],
@@ -2812,8 +2818,6 @@
"docs": ["docs@workspace:apps/docs"],
- "dom-helpers": ["dom-helpers@5.2.1", "", { "dependencies": { "@babel/runtime": "^7.8.7", "csstype": "^3.0.2" } }, "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA=="],
-
"dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="],
"domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],
@@ -2896,6 +2900,8 @@
"es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="],
+ "es-toolkit": ["es-toolkit@1.44.0", "", {}, "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg=="],
+
"es6-error": ["es6-error@4.1.1", "", {}, "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="],
"esast-util-from-estree": ["esast-util-from-estree@2.0.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", "estree-util-visit": "^2.0.0", "unist-util-position-from-estree": "^2.0.0" } }, "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ=="],
@@ -2942,7 +2948,7 @@
"event-target-shim": ["event-target-shim@5.0.1", "", {}, "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="],
- "eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="],
+ "eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="],
"eventsource": ["eventsource@3.0.7", "", { "dependencies": { "eventsource-parser": "^3.0.1" } }, "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="],
@@ -3028,8 +3034,6 @@
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
- "fast-equals": ["fast-equals@5.4.0", "", {}, "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw=="],
-
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
@@ -3296,6 +3300,8 @@
"immediate": ["immediate@3.0.6", "", {}, "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="],
+ "immer": ["immer@10.2.0", "", {}, "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw=="],
+
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
"import-in-the-middle": ["import-in-the-middle@2.0.5", "", { "dependencies": { "acorn": "^8.15.0", "acorn-import-attributes": "^1.9.5", "cjs-module-lexer": "^2.2.0", "module-details-from-path": "^1.0.4" } }, "sha512-0InH9/4oDCBRzWXhpOqusspLBrVfK1vPvbn9Wxl8DAQ8yyx5fWJRETICSwkiAMaYntjJAMBP1R4B6cQnEUYVEA=="],
@@ -4142,7 +4148,7 @@
"react-icons": ["react-icons@5.5.0", "", { "peerDependencies": { "react": "*" } }, "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw=="],
- "react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
+ "react-is": ["react-is@19.2.4", "", {}, "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA=="],
"react-native": ["react-native@0.81.5", "", { "dependencies": { "@jest/create-cache-key-function": "^29.7.0", "@react-native/assets-registry": "0.81.5", "@react-native/codegen": "0.81.5", "@react-native/community-cli-plugin": "0.81.5", "@react-native/gradle-plugin": "0.81.5", "@react-native/js-polyfills": "0.81.5", "@react-native/normalize-colors": "0.81.5", "@react-native/virtualized-lists": "0.81.5", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "0.29.1", "base64-js": "^1.5.1", "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.7.0", "memoize-one": "^5.0.0", "metro-runtime": "^0.83.1", "metro-source-map": "^0.83.1", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.26.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", "ws": "^6.2.3", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^19.1.0", "react": "^19.1.0" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw=="],
@@ -4168,6 +4174,8 @@
"react-native-worklets": ["react-native-worklets@0.5.1", "", { "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", "@babel/plugin-transform-class-properties": "^7.0.0-0", "@babel/plugin-transform-classes": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", "@babel/plugin-transform-optional-chaining": "^7.0.0-0", "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", "@babel/plugin-transform-template-literals": "^7.0.0-0", "@babel/plugin-transform-unicode-regex": "^7.0.0-0", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "semver": "7.7.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0", "react": "*", "react-native": "*" } }, "sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w=="],
+ "react-redux": ["react-redux@9.2.0", "", { "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" }, "peerDependencies": { "@types/react": "^18.2.25 || ^19", "react": "^18.0 || ^19", "redux": "^5.0.0" }, "optionalPeers": ["@types/react", "redux"] }, "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g=="],
+
"react-refresh": ["react-refresh@0.18.0", "", {}, "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw=="],
"react-remove-scroll": ["react-remove-scroll@2.7.2", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q=="],
@@ -4176,12 +4184,8 @@
"react-resizable-panels": ["react-resizable-panels@3.0.6", "", { "peerDependencies": { "react": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "sha512-b3qKHQ3MLqOgSS+FRYKapNkJZf5EQzuf6+RLiq1/IlTHw99YrZ2NJZLk4hQIzTnnIkRg2LUqyVinu6YWWpUYew=="],
- "react-smooth": ["react-smooth@4.0.4", "", { "dependencies": { "fast-equals": "^5.0.1", "prop-types": "^15.8.1", "react-transition-group": "^4.4.5" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q=="],
-
"react-style-singleton": ["react-style-singleton@2.2.3", "", { "dependencies": { "get-nonce": "^1.0.0", "tslib": "^2.0.0" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ=="],
- "react-transition-group": ["react-transition-group@4.4.5", "", { "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", "loose-envify": "^1.4.0", "prop-types": "^15.6.2" }, "peerDependencies": { "react": ">=16.6.0", "react-dom": ">=16.6.0" } }, "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g=="],
-
"readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
@@ -4190,9 +4194,7 @@
"recast": ["recast@0.23.11", "", { "dependencies": { "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" } }, "sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA=="],
- "recharts": ["recharts@2.15.4", "", { "dependencies": { "clsx": "^2.0.0", "eventemitter3": "^4.0.1", "lodash": "^4.17.21", "react-is": "^18.3.1", "react-smooth": "^4.0.4", "recharts-scale": "^0.4.4", "tiny-invariant": "^1.3.1", "victory-vendor": "^36.6.8" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw=="],
-
- "recharts-scale": ["recharts-scale@0.4.5", "", { "dependencies": { "decimal.js-light": "^2.4.1" } }, "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w=="],
+ "recharts": ["recharts@3.7.0", "", { "dependencies": { "@reduxjs/toolkit": "1.x.x || 2.x.x", "clsx": "^2.1.1", "decimal.js-light": "^2.5.1", "es-toolkit": "^1.39.3", "eventemitter3": "^5.0.1", "immer": "^10.1.1", "react-redux": "8.x.x || 9.x.x", "reselect": "5.1.1", "tiny-invariant": "^1.3.3", "use-sync-external-store": "^1.2.2", "victory-vendor": "^37.0.2" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew=="],
"recma-build-jsx": ["recma-build-jsx@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-build-jsx": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew=="],
@@ -4202,6 +4204,10 @@
"recma-stringify": ["recma-stringify@1.0.0", "", { "dependencies": { "@types/estree": "^1.0.0", "estree-util-to-js": "^2.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g=="],
+ "redux": ["redux@5.0.1", "", {}, "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w=="],
+
+ "redux-thunk": ["redux-thunk@3.1.0", "", { "peerDependencies": { "redux": "^5.0.0" } }, "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw=="],
+
"reflect-metadata": ["reflect-metadata@0.2.2", "", {}, "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q=="],
"regenerate": ["regenerate@1.4.2", "", {}, "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="],
@@ -4780,7 +4786,7 @@
"vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="],
- "victory-vendor": ["victory-vendor@36.9.2", "", { "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", "@types/d3-interpolate": "^3.0.1", "@types/d3-scale": "^4.0.2", "@types/d3-shape": "^3.1.0", "@types/d3-time": "^3.0.0", "@types/d3-timer": "^3.0.0", "d3-array": "^3.1.6", "d3-ease": "^3.0.1", "d3-interpolate": "^3.0.1", "d3-scale": "^4.0.2", "d3-shape": "^3.1.0", "d3-time": "^3.0.0", "d3-timer": "^3.0.1" } }, "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ=="],
+ "victory-vendor": ["victory-vendor@37.3.6", "", { "dependencies": { "@types/d3-array": "^3.0.3", "@types/d3-ease": "^3.0.0", "@types/d3-interpolate": "^3.0.1", "@types/d3-scale": "^4.0.2", "@types/d3-shape": "^3.1.0", "@types/d3-time": "^3.0.0", "@types/d3-timer": "^3.0.0", "d3-array": "^3.1.6", "d3-ease": "^3.0.1", "d3-interpolate": "^3.0.1", "d3-scale": "^4.0.2", "d3-shape": "^3.1.0", "d3-time": "^3.0.0", "d3-timer": "^3.0.1" } }, "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ=="],
"vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "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-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="],
@@ -5254,14 +5260,14 @@
"@react-navigation/core/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
- "@react-navigation/core/react-is": ["react-is@19.2.4", "", {}, "sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA=="],
-
"@react-navigation/native/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
"@react-navigation/native-stack/@react-navigation/elements": ["@react-navigation/elements@2.9.5", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.1.28", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-iHZU8rRN1014Upz73AqNVXDvSMZDh5/ktQ1CMe21rdgnOY79RWtHHBp9qOS3VtqlUVYGkuX5GEw5mDt4tKdl0g=="],
"@react-navigation/routers/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
+ "@reduxjs/toolkit/immer": ["immer@11.1.3", "", {}, "sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q=="],
+
"@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="],
"@scalar/types/type-fest": ["type-fest@5.4.1", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-xygQcmneDyzsEuKZrFbRMne5HDqMs++aFzefrJTgEIKjQ3rekM+RPfFCVq2Gp1VIDqddoYeppCj4Pcb+RZW0GQ=="],
@@ -5546,8 +5552,6 @@
"linkedom/htmlparser2": ["htmlparser2@10.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "entities": "^7.0.1" } }, "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ=="],
- "listr2/eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="],
-
"listr2/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=="],
"log-update/ansi-escapes": ["ansi-escapes@7.2.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw=="],
@@ -5630,8 +5634,6 @@
"p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
- "p-queue/eventemitter3": ["eventemitter3@5.0.4", "", {}, "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw=="],
-
"package-json/registry-auth-token": ["registry-auth-token@5.1.1", "", { "dependencies": { "@pnpm/npm-conf": "^3.0.2" } }, "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q=="],
"package-json/registry-url": ["registry-url@6.0.1", "", { "dependencies": { "rc": "1.2.8" } }, "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q=="],
@@ -5650,6 +5652,8 @@
"postcss-nested/postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="],
+ "pretty-format/react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
+
"prompts/kleur": ["kleur@3.0.3", "", {}, "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="],
"prop-types/react-is": ["react-is@16.13.1", "", {}, "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="],
@@ -5994,6 +5998,8 @@
"@istanbuljs/load-nyc-config/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
+ "@langchain/core/p-queue/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="],
+
"@langchain/core/p-queue/p-timeout": ["p-timeout@3.2.0", "", { "dependencies": { "p-finally": "^1.0.0" } }, "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="],
"@octokit/plugin-paginate-rest/@octokit/types/@octokit/openapi-types": ["@octokit/openapi-types@26.0.0", "", {}, "sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA=="],
@@ -6296,6 +6302,8 @@
"inquirer/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
+ "langsmith/p-queue/eventemitter3": ["eventemitter3@4.0.7", "", {}, "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="],
+
"langsmith/p-queue/p-timeout": ["p-timeout@3.2.0", "", { "dependencies": { "p-finally": "^1.0.0" } }, "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="],
"linkedom/htmlparser2/entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="],
diff --git a/packages/analytics/package.json b/packages/analytics/package.json
index 78ae691b..f0c51f41 100644
--- a/packages/analytics/package.json
+++ b/packages/analytics/package.json
@@ -10,7 +10,7 @@
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/utils": "workspace:*",
diff --git a/packages/auth/package.json b/packages/auth/package.json
index d0e70317..1e639273 100644
--- a/packages/auth/package.json
+++ b/packages/auth/package.json
@@ -15,7 +15,7 @@
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
"secret": "bunx @better-auth/cli@latest secret",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@better-auth/expo": "1.4.10",
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 342c63b8..b45707d8 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -18,7 +18,7 @@
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "convex dev",
"env:set": "convex env set",
- "typecheck": "adamantite typecheck",
+ "typecheck": "tsc --noEmit",
"generate:auth": "bun run ./scripts/generate-schema.ts"
},
"dependencies": {
diff --git a/packages/core/package.json b/packages/core/package.json
index fac601f3..259be074 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -10,7 +10,7 @@
"scripts": {
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"devDependencies": {
"@tooling/tsconfig": "workspace:*",
diff --git a/packages/db/package.json b/packages/db/package.json
index fb6a0e99..9daa4382 100644
--- a/packages/db/package.json
+++ b/packages/db/package.json
@@ -17,7 +17,7 @@
"push": "bun --bun drizzle-kit push",
"reset": "bun --bun run ./scripts/reset.ts",
"seed": "bun --bun run ./scripts/seed.ts",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/packages/email/package.json b/packages/email/package.json
index 940ad2d2..8e308f00 100644
--- a/packages/email/package.json
+++ b/packages/email/package.json
@@ -12,7 +12,7 @@
"clean": "git clean -xdf .cache .turbo dist node_modules",
"dev": "email dev --dir src/templates --port 4000",
"export": "email export --dir src/templates",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/packages/env/package.json b/packages/env/package.json
index e7d6272e..3d7db2cb 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -10,7 +10,7 @@
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/utils": "workspace:*",
diff --git a/packages/error/package.json b/packages/error/package.json
index 4d68f37d..99366459 100644
--- a/packages/error/package.json
+++ b/packages/error/package.json
@@ -9,7 +9,7 @@
"scripts": {
"bump:deps": "bun update --interactive",
"clean": "git clean -xdf .cache .turbo dist node_modules",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"faultier": "1.1.0"
diff --git a/packages/kv/package.json b/packages/kv/package.json
index 0b0af8ec..aafd4df1 100644
--- a/packages/kv/package.json
+++ b/packages/kv/package.json
@@ -9,7 +9,7 @@
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/packages/observability/package.json b/packages/observability/package.json
index 3d355bde..08ff8bd9 100644
--- a/packages/observability/package.json
+++ b/packages/observability/package.json
@@ -13,7 +13,7 @@
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/packages/payments/package.json b/packages/payments/package.json
index 835d90b7..23f2cf90 100644
--- a/packages/payments/package.json
+++ b/packages/payments/package.json
@@ -11,7 +11,7 @@
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/packages/storage/package.json b/packages/storage/package.json
index a880e9aa..167f42dc 100644
--- a/packages/storage/package.json
+++ b/packages/storage/package.json
@@ -10,7 +10,7 @@
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@init/env": "workspace:*",
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 948738a8..ea945f7b 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -17,7 +17,7 @@
"components:add": "shadcn add",
"components:diff": "shadcn diff",
"bump:deps": "bun update --interactive",
- "typecheck": "adamantite typecheck"
+ "typecheck": "tsc --noEmit"
},
"dependencies": {
"@base-ui/react": "1.0.0",
@@ -25,13 +25,13 @@
"@tanstack/react-form": "1.27.7",
"class-variance-authority": "0.7.1",
"cmdk": "1.1.1",
- "date-fns": "4.1.0",
+ "date-fns": "^4.1.0",
"embla-carousel-react": "8.6.0",
"input-otp": "1.4.2",
- "react-day-picker": "9.13.0",
+ "react-day-picker": "^9.13.0",
"react-icons": "5.5.0",
"react-resizable-panels": "3.0.6",
- "recharts": "2.15.4",
+ "recharts": "^3.7.0",
"sonner": "2.0.7",
"vaul": "1.1.2"
},
diff --git a/packages/ui/src/components/accordion.tsx b/packages/ui/src/components/accordion.tsx
index 6e8ab3bb..10ce9add 100644
--- a/packages/ui/src/components/accordion.tsx
+++ b/packages/ui/src/components/accordion.tsx
@@ -27,7 +27,7 @@ function AccordionTrigger({ className, children, ...props }: AccordionPrimitive.
{children}
@@ -56,7 +58,7 @@ function AccordionContent({ className, children, ...props }: AccordionPrimitive.
>
diff --git a/packages/ui/src/components/alert-dialog.tsx b/packages/ui/src/components/alert-dialog.tsx
index 6e625ca3..e6a6b412 100644
--- a/packages/ui/src/components/alert-dialog.tsx
+++ b/packages/ui/src/components/alert-dialog.tsx
@@ -1,6 +1,6 @@
-import type * as React from "react"
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog"
import { cn } from "@init/utils/ui"
+import * as React from "react"
import { Button } from "#components/button.tsx"
function AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {
@@ -18,11 +18,11 @@ function AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {
function AlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.Backdrop.Props) {
return (
)
@@ -39,12 +39,12 @@ function AlertDialogContent({
@@ -54,11 +54,11 @@ function AlertDialogContent({
function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">) {
return (
)
@@ -67,11 +67,11 @@ function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">)
function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">) {
return (
)
@@ -80,50 +80,44 @@ function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">)
function AlertDialogMedia({ className, ...props }: React.ComponentProps<"div">) {
return (
)
}
-function AlertDialogTitle({
- className,
- ...props
-}: React.ComponentProps
) {
+function AlertDialogTitle({ className, ...props }: AlertDialogPrimitive.Title.Props) {
return (
)
}
-function AlertDialogDescription({
- className,
- ...props
-}: React.ComponentProps) {
+function AlertDialogDescription({ className, ...props }: AlertDialogPrimitive.Description.Props) {
return (
)
}
function AlertDialogAction({ className, ...props }: React.ComponentProps) {
- return
+ return
}
function AlertDialogCancel({
@@ -135,9 +129,9 @@ function AlertDialogCancel({
Pick, "variant" | "size">) {
return (
}
+ className={cn(className)}
+ render={}
{...props}
/>
)
diff --git a/packages/ui/src/components/alert.tsx b/packages/ui/src/components/alert.tsx
index 93d8003f..528aba96 100644
--- a/packages/ui/src/components/alert.tsx
+++ b/packages/ui/src/components/alert.tsx
@@ -1,9 +1,9 @@
-import type * as React from "react"
import { cn } from "@init/utils/ui"
import { cva, type VariantProps } from "class-variance-authority"
+import * as React from "react"
const alertVariants = cva(
- "group/alert relative grid w-full gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 has-data-[slot=alert-action]:pr-18 *:[svg:not([class*='size-'])]:size-4 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current",
+ "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
{
defaultVariants: {
variant: "default",
@@ -12,7 +12,7 @@ const alertVariants = cva(
variant: {
default: "bg-card text-card-foreground",
destructive:
- "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current",
+ "text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",
},
},
}
@@ -25,9 +25,9 @@ function Alert({
}: React.ComponentProps<"div"> & VariantProps) {
return (
)
@@ -36,11 +36,8 @@ function Alert({
function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
return (
svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground",
- className
- )}
data-slot="alert-title"
+ className={cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className)}
{...props}
/>
)
@@ -49,11 +46,11 @@ function AlertTitle({ className, ...props }: React.ComponentProps<"div">) {
function AlertDescription({ className, ...props }: React.ComponentProps<"div">) {
return (
)
@@ -61,11 +58,7 @@ function AlertDescription({ className, ...props }: React.ComponentProps<"div">)
function AlertAction({ className, ...props }: React.ComponentProps<"div">) {
return (
-
+
)
}
diff --git a/packages/ui/src/components/aspect-ratio.tsx b/packages/ui/src/components/aspect-ratio.tsx
index 9e270bbb..79096275 100644
--- a/packages/ui/src/components/aspect-ratio.tsx
+++ b/packages/ui/src/components/aspect-ratio.tsx
@@ -1,5 +1,5 @@
-import type * as React from "react"
import { cn } from "@init/utils/ui"
+import * as React from "react"
function AspectRatio({
ratio,
@@ -8,13 +8,13 @@ function AspectRatio({
}: React.ComponentProps<"div"> & { ratio: number }) {
return (
)
diff --git a/packages/ui/src/components/avatar.tsx b/packages/ui/src/components/avatar.tsx
index 27baba9e..25a9e54f 100644
--- a/packages/ui/src/components/avatar.tsx
+++ b/packages/ui/src/components/avatar.tsx
@@ -1,6 +1,6 @@
-import type * as React from "react"
import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar"
import { cn } from "@init/utils/ui"
+import * as React from "react"
function Avatar({
className,
@@ -11,12 +11,12 @@ function Avatar({
}) {
return (
)
@@ -25,8 +25,8 @@ function Avatar({
function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {
return (
)
@@ -35,11 +35,11 @@ function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {
function AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props) {
return (
)
@@ -48,6 +48,7 @@ function AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props)
function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {
return (
svg]:hidden",
@@ -55,7 +56,6 @@ function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {
"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
className
)}
- data-slot="avatar-badge"
{...props}
/>
)
@@ -64,11 +64,11 @@ function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {
function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {
return (
)
@@ -77,11 +77,11 @@ function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {
function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">) {
return (
svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3",
className
)}
- data-slot="avatar-group-count"
{...props}
/>
)
diff --git a/packages/ui/src/components/badge.tsx b/packages/ui/src/components/badge.tsx
index 3aa0d9db..d5f0f5e4 100644
--- a/packages/ui/src/components/badge.tsx
+++ b/packages/ui/src/components/badge.tsx
@@ -4,7 +4,7 @@ import { cn } from "@init/utils/ui"
import { cva, type VariantProps } from "class-variance-authority"
const badgeVariants = cva(
- "group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden whitespace-nowrap rounded-4xl border border-transparent px-2 py-0.5 font-medium text-xs transition-all transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",
+ "h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive overflow-hidden group/badge",
{
defaultVariants: {
variant: "default",
@@ -13,7 +13,7 @@ const badgeVariants = cva(
variant: {
default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
destructive:
- "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",
+ "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
link: "text-primary underline-offset-4 hover:underline",
outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
diff --git a/packages/ui/src/components/breadcrumb.tsx b/packages/ui/src/components/breadcrumb.tsx
index 84c4adfb..7d1d4b6d 100644
--- a/packages/ui/src/components/breadcrumb.tsx
+++ b/packages/ui/src/components/breadcrumb.tsx
@@ -1,21 +1,21 @@
-import type * as React from "react"
import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
import { cn } from "@init/utils/ui"
+import * as React from "react"
import { Icon } from "#components/icon.tsx"
-function Breadcrumb({ ...props }: React.ComponentProps<"nav">) {
- return
+function Breadcrumb({ className, ...props }: React.ComponentProps<"nav">) {
+ return
}
function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) {
return (
)
@@ -24,8 +24,8 @@ function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">) {
function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">) {
return (
)
@@ -50,10 +50,12 @@ function BreadcrumbLink({ className, render, ...props }: useRender.ComponentProp
function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) {
return (
)
@@ -62,10 +64,10 @@ function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">) {
function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">) {
return (
svg]:size-3.5", className)}
data-slot="breadcrumb-separator"
role="presentation"
+ aria-hidden="true"
+ className={cn("[&>svg]:size-3.5", className)}
{...props}
>
{children ?? }
@@ -76,10 +78,10 @@ function BreadcrumbSeparator({ children, className, ...props }: React.ComponentP
function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">) {
return (
svg]:size-4", className)}
data-slot="breadcrumb-ellipsis"
role="presentation"
+ aria-hidden="true"
+ className={cn("flex size-5 items-center justify-center [&>svg]:size-4", className)}
{...props}
>
diff --git a/packages/ui/src/components/button-group.tsx b/packages/ui/src/components/button-group.tsx
index bb677695..82723386 100644
--- a/packages/ui/src/components/button-group.tsx
+++ b/packages/ui/src/components/button-group.tsx
@@ -1,4 +1,3 @@
-import type * as React from "react"
import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
import { cn } from "@init/utils/ui"
@@ -6,7 +5,7 @@ import { cva, type VariantProps } from "class-variance-authority"
import { Separator } from "#components/separator.tsx"
const buttonGroupVariants = cva(
- "flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
+ "has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-lg flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
{
defaultVariants: {
orientation: "horizontal",
@@ -14,9 +13,9 @@ const buttonGroupVariants = cva(
variants: {
orientation: {
horizontal:
- "[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md! [&>[data-slot]]:rounded-r-none [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0",
+ "[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-lg! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0 [&>[data-slot]]:rounded-r-none",
vertical:
- "flex-col [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! [&>[data-slot]]:rounded-b-none [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0",
+ "[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg! flex-col [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0 [&>[data-slot]]:rounded-b-none",
},
},
}
@@ -29,10 +28,10 @@ function ButtonGroup({
}: React.ComponentProps<"div"> & VariantProps) {
return (
)
@@ -44,7 +43,7 @@ function ButtonGroupText({ className, render, ...props }: useRender.ComponentPro
props: mergeProps<"div">(
{
className: cn(
- "flex items-center gap-2 rounded-md border bg-muted px-2.5 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
+ "flex items-center gap-2 rounded-lg border bg-muted px-2.5 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
className
),
},
@@ -64,12 +63,12 @@ function ButtonGroupSeparator({
}: React.ComponentProps) {
return (
)
diff --git a/packages/ui/src/components/button.tsx b/packages/ui/src/components/button.tsx
index 43d9ed35..7a03231d 100644
--- a/packages/ui/src/components/button.tsx
+++ b/packages/ui/src/components/button.tsx
@@ -3,7 +3,7 @@ import { cn } from "@init/utils/ui"
import { cva, type VariantProps } from "class-variance-authority"
const buttonVariants = cva(
- "group/button inline-flex shrink-0 select-none items-center justify-center whitespace-nowrap rounded-md border border-transparent bg-clip-padding font-medium text-sm outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
+ "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-lg border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none",
{
defaultVariants: {
size: "default",
@@ -12,26 +12,26 @@ const buttonVariants = cva(
variants: {
size: {
default:
- "h-9 gap-1.5 in-data-[slot=button-group]:rounded-md px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
- icon: "size-9",
- "icon-lg": "size-10",
+ "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
+ icon: "size-8",
+ "icon-lg": "size-9",
"icon-sm":
- "size-8 in-data-[slot=button-group]:rounded-md rounded-[min(var(--radius-md),10px)]",
+ "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
"icon-xs":
- "size-6 in-data-[slot=button-group]:rounded-md rounded-[min(var(--radius-md),8px)] [&_svg:not([class*='size-'])]:size-3",
- lg: "h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
- sm: "h-8 gap-1 in-data-[slot=button-group]:rounded-md rounded-[min(var(--radius-md),10px)] px-2.5 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
- xs: "h-6 gap-1 in-data-[slot=button-group]:rounded-md rounded-[min(var(--radius-md),8px)] px-2 text-xs has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
+ "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
+ lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
+ sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
+ xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
},
variant: {
- default: "bg-primary text-primary-foreground hover:bg-primary/80",
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
destructive:
- "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 dark:hover:bg-destructive/30",
+ "bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30",
ghost:
- "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
+ "hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
link: "text-primary underline-offset-4 hover:underline",
outline:
- "border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
+ "border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground",
secondary:
"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
},
@@ -47,8 +47,8 @@ function Button({
}: ButtonPrimitive.Props & VariantProps) {
return (
)
diff --git a/packages/ui/src/components/calendar.tsx b/packages/ui/src/components/calendar.tsx
index f4844348..b30e134f 100644
--- a/packages/ui/src/components/calendar.tsx
+++ b/packages/ui/src/components/calendar.tsx
@@ -1,49 +1,10 @@
-import { cn } from "@init/utils/ui"
import * as React from "react"
-import { type DayButton, DayPicker, getDefaultClassNames } from "react-day-picker"
+import { DayPicker, getDefaultClassNames, type DayButton } from "react-day-picker"
+
+import { cn } from "@init/utils/ui"
import { Button, buttonVariants } from "#components/button.tsx"
import { Icon } from "#components/icon.tsx"
-function CalendarRoot({
- className,
- rootRef,
- ...props
-}: {
- className?: string
- rootRef?: React.Ref
-} & React.ComponentProps<"div">) {
- return
-}
-
-function CalendarChevron({
- className,
- orientation,
- ...props
-}: {
- className?: string
- orientation?: "left" | "right" | "up" | "down"
-} & React.ComponentProps<"svg">) {
- if (orientation === "left") {
- return
- }
-
- if (orientation === "right") {
- return
- }
-
- return
-}
-
-function CalendarWeekNumber({ children, ...props }: React.ComponentProps<"td">) {
- return (
-
-
- {children}
-
- |
- )
-}
-
function Calendar({
className,
classNames,
@@ -60,13 +21,18 @@ function Calendar({
return (
svg]:rotate-180`,
String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
className
)}
+ captionLayout={captionLayout}
+ formatters={{
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
+ ...formatters,
+ }}
classNames={{
button_next: cn(
buttonVariants({ variant: buttonVariant }),
@@ -82,17 +48,20 @@ function Calendar({
"font-medium select-none",
captionLayout === "label"
? "text-sm"
- : "flex h-8 items-center gap-1 rounded-md pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",
+ : "cn-calendar-caption-label flex items-center gap-1 rounded-(--cell-radius) text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",
defaultClassNames.caption_label
),
day: cn(
- "group/day relative aspect-square h-full w-full p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",
+ "group/day relative aspect-square h-full w-full rounded-(--cell-radius) p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius)",
+ props.showWeekNumber
+ ? "[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)"
+ : "[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)",
defaultClassNames.day
),
disabled: cn("text-muted-foreground opacity-50", defaultClassNames.disabled),
- dropdown: cn("absolute inset-0 opacity-0", defaultClassNames.dropdown),
+ dropdown: cn("absolute inset-0 bg-popover opacity-0", defaultClassNames.dropdown),
dropdown_root: cn(
- "relative rounded-md border border-input shadow-xs has-focus:border-ring has-focus:ring-[3px] has-focus:ring-ring/50",
+ "cn-calendar-dropdown-root relative rounded-(--cell-radius)",
defaultClassNames.dropdown_root
),
dropdowns: cn(
@@ -114,13 +83,19 @@ function Calendar({
"text-muted-foreground aria-selected:text-muted-foreground",
defaultClassNames.outside
),
- range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
+ range_end: cn(
+ "relative isolate -z-0 rounded-r-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:left-0 after:w-4 after:bg-muted",
+ defaultClassNames.range_end
+ ),
range_middle: cn("rounded-none", defaultClassNames.range_middle),
- range_start: cn("rounded-l-md bg-accent", defaultClassNames.range_start),
+ range_start: cn(
+ "relative isolate -z-0 rounded-l-(--cell-radius) bg-muted after:absolute after:inset-y-0 after:right-0 after:w-4 after:bg-muted",
+ defaultClassNames.range_start
+ ),
root: cn("w-fit", defaultClassNames.root),
table: "w-full border-collapse",
today: cn(
- "rounded-md bg-accent text-accent-foreground data-[selected=true]:rounded-none",
+ "rounded-(--cell-radius) bg-muted text-foreground data-[selected=true]:rounded-none",
defaultClassNames.today
),
week: cn("mt-2 flex w-full", defaultClassNames.week),
@@ -130,24 +105,37 @@ function Calendar({
),
week_number_header: cn("w-(--cell-size) select-none", defaultClassNames.week_number_header),
weekday: cn(
- "flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none",
+ "flex-1 rounded-(--cell-radius) text-[0.8rem] font-normal text-muted-foreground select-none",
defaultClassNames.weekday
),
weekdays: cn("flex", defaultClassNames.weekdays),
...classNames,
}}
components={{
- Chevron: CalendarChevron,
+ Chevron: ({ className, orientation, ...props }) => {
+ if (orientation === "left") {
+ return
+ }
+
+ if (orientation === "right") {
+ return
+ }
+
+ return
+ },
DayButton: CalendarDayButton,
- Root: CalendarRoot,
- WeekNumber: CalendarWeekNumber,
+ Root: ({ className, rootRef, ...props }) => (
+
+ ),
+ WeekNumber: ({ children, ...props }) => (
+
+
+ {children}
+
+ |
+ ),
...components,
}}
- formatters={{
- formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
- ...formatters,
- }}
- showOutsideDays={showOutsideDays}
{...props}
/>
)
@@ -161,7 +149,7 @@ function CalendarDayButton({
}: React.ComponentProps) {
const defaultClassNames = getDefaultClassNames()
- const ref = React.useRef>(null)
+ const ref = React.useRef(null)
React.useEffect(() => {
if (modifiers.focused) {
ref.current?.focus()
@@ -170,25 +158,23 @@ function CalendarDayButton({
return (