diff --git a/packages/cheatsheet-local/package.json b/packages/cheatsheet-local/package.json
index 94f510200c..21e3e5936c 100644
--- a/packages/cheatsheet-local/package.json
+++ b/packages/cheatsheet-local/package.json
@@ -15,8 +15,7 @@
},
"postcss": {
"plugins": {
- "tailwindcss": {},
- "autoprefixer": {}
+ "@tailwindcss/postcss": {}
}
},
"scripts": {
@@ -35,6 +34,7 @@
},
"devDependencies": {
"@effortlessmotion/html-webpack-inline-source-plugin": "^1.0.3",
+ "@tailwindcss/postcss": "^4.1.11",
"@testing-library/dom": "^10.4.0",
"@testing-library/react": "^16.3.0",
"@types/jest": "^30.0.0",
@@ -42,14 +42,13 @@
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@types/webpack": "^5.28.5",
- "autoprefixer": "^10.4.21",
"css-loader": "^7.1.2",
"html-webpack-plugin": "^5.6.3",
"jest": "^30.0.5",
"postcss": "^8.5.6",
"postcss-loader": "^8.1.1",
"style-loader": "^4.0.0",
- "tailwindcss": "^3.4.17",
+ "tailwindcss": "^4.1.11",
"ts-loader": "^9.5.2",
"ts-node": "^10.9.2",
"typescript": "^5.8.3",
diff --git a/packages/cheatsheet-local/src/styles.css b/packages/cheatsheet-local/src/styles.css
index 3b081a130b..010f190cd8 100644
--- a/packages/cheatsheet-local/src/styles.css
+++ b/packages/cheatsheet-local/src/styles.css
@@ -1,4 +1,3 @@
-/* You can add global styles to this file, and also import other style files */
-@tailwind components;
-@tailwind base;
-@tailwind utilities;
+@import "tailwindcss";
+
+@config "../tailwind.config.js";
diff --git a/packages/cheatsheet-local/tailwind.config.js b/packages/cheatsheet-local/tailwind.config.js
index 2da9910980..1f717a9105 100644
--- a/packages/cheatsheet-local/tailwind.config.js
+++ b/packages/cheatsheet-local/tailwind.config.js
@@ -1,13 +1,17 @@
-import { readFileSync } from "fs";
+import { readFileSync } from "node:fs";
const references = JSON.parse(
readFileSync("tsconfig.json", "utf-8"),
).references.map((ref) => ref.path);
-export const content = [".", ...references].map(
- (dir) => `${dir}/src/**/*!(*.stories|*.spec).{ts,tsx,html}`,
-);
-export const theme = {
- extend: {},
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: [".", ...references].flatMap((pkg) => [
+ `${pkg}/src/**/*.{ts,tsx,html}`,
+ `!${pkg}/src/**/*.{stories,spec}.{ts,tsx,html}`,
+ ]),
+ theme: {
+ extend: {},
+ },
+ plugins: [],
};
-export const plugins = [];
diff --git a/packages/cheatsheet/src/lib/components/CheatsheetLegendComponent.tsx b/packages/cheatsheet/src/lib/components/CheatsheetLegendComponent.tsx
index b771c4c1cd..72f1d7a5bf 100644
--- a/packages/cheatsheet/src/lib/components/CheatsheetLegendComponent.tsx
+++ b/packages/cheatsheet/src/lib/components/CheatsheetLegendComponent.tsx
@@ -38,7 +38,7 @@ export default function CheatsheetLegendComponent({
{data.map(({ term, definition, link, id }) => (
{formatCaptures(`<${term}>`)} |
diff --git a/packages/cheatsheet/src/lib/components/SmartLink.tsx b/packages/cheatsheet/src/lib/components/SmartLink.tsx
index 2f625c13eb..c0736b2be5 100644
--- a/packages/cheatsheet/src/lib/components/SmartLink.tsx
+++ b/packages/cheatsheet/src/lib/components/SmartLink.tsx
@@ -22,7 +22,7 @@ const SmartLink: React.FC = ({
}) => {
const className = noFormatting
? ""
- : "text-blue-500 hover:text-violet-700 dark:text-cyan-400 hover:dark:text-violet-200";
+ : "text-blue-500 hover:text-violet-700 dark:text-cyan-400 dark:hover:text-violet-200";
return (
diff --git a/packages/cursorless-org-docs/package.json b/packages/cursorless-org-docs/package.json
index 611c22a74c..b545502de3 100644
--- a/packages/cursorless-org-docs/package.json
+++ b/packages/cursorless-org-docs/package.json
@@ -14,8 +14,7 @@
},
"postcss": {
"plugins": {
- "tailwindcss": {},
- "autoprefixer": {}
+ "@tailwindcss/postcss": {}
}
},
"browserslist": {
@@ -71,7 +70,7 @@
"@types/mdast": "^4.0.4",
"@types/react": "^19.1.8",
"postcss": "^8.5.6",
- "tailwindcss": "^3.4.17",
+ "tailwindcss": "^4.1.11",
"typescript": "^5.8.3",
"unified": "^11.0.5"
}
diff --git a/packages/cursorless-org-docs/src/css/custom.css b/packages/cursorless-org-docs/src/css/custom.css
index 1903e2bfc8..308e18447f 100644
--- a/packages/cursorless-org-docs/src/css/custom.css
+++ b/packages/cursorless-org-docs/src/css/custom.css
@@ -1,6 +1,6 @@
-@tailwind components;
-@tailwind base;
-@tailwind utilities;
+@import "tailwindcss";
+
+@config "../../tailwind.config.js";
/* From https://github.com/facebook/docusaurus/blob/cc0bceab9c1678303f6237f5526753edc1b12fc3/website/src/css/custom.css#L70-L86 */
.header-github-link:hover {
diff --git a/packages/cursorless-org-docs/src/plugins/tailwind-plugin.ts b/packages/cursorless-org-docs/src/plugins/tailwind-plugin.ts
index 890b305ecb..29d9e30028 100644
--- a/packages/cursorless-org-docs/src/plugins/tailwind-plugin.ts
+++ b/packages/cursorless-org-docs/src/plugins/tailwind-plugin.ts
@@ -3,7 +3,7 @@ import type {
PluginOptions,
PostCssOptions,
} from "@docusaurus/types";
-import tailwindcss from "tailwindcss";
+import tailwindcss from "@tailwindcss/postcss";
export default function tailwindPlugin(
_context: LoadContext,
@@ -12,7 +12,7 @@ export default function tailwindPlugin(
return {
name: "tailwind-plugin",
- configurePos1tCss(postcssOptions: PostCssOptions): PostCssOptions {
+ configurePostCss(postcssOptions: PostCssOptions): PostCssOptions {
postcssOptions.plugins.push(tailwindcss);
return postcssOptions;
},
diff --git a/packages/cursorless-org-docs/tailwind.config.js b/packages/cursorless-org-docs/tailwind.config.js
index da49ad1396..473fd7f86f 100644
--- a/packages/cursorless-org-docs/tailwind.config.js
+++ b/packages/cursorless-org-docs/tailwind.config.js
@@ -1,9 +1,17 @@
-/** @type {import('tailwindcss').Config} */
+import { readFileSync } from "node:fs";
-export const content = ["./src/**/*.{js,ts,jsx,tsx}"];
+const references = JSON.parse(
+ readFileSync("tsconfig.json", "utf-8"),
+).references.map((ref) => ref.path);
-export const corePlugins = {
- preflight: false,
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: [".", ...references].map((pkg) => `${pkg}/src/**/*.{js,ts,jsx,tsx}`),
+ theme: {
+ extend: {},
+ },
+ corePlugins: {
+ preflight: false,
+ },
+ plugins: [],
};
-
-export const plugins = [];
diff --git a/packages/cursorless-org-docs/tsconfig.json b/packages/cursorless-org-docs/tsconfig.json
index d723b09e49..322ef16b42 100644
--- a/packages/cursorless-org-docs/tsconfig.json
+++ b/packages/cursorless-org-docs/tsconfig.json
@@ -3,7 +3,8 @@
"compilerOptions": {
"target": "es5",
"lib": ["dom", "es2022"],
- "moduleResolution": "node",
+ "moduleResolution": "nodenext",
+ "module": "nodenext",
"esModuleInterop": true,
"emitDeclarationOnly": false,
"jsx": "react"
diff --git a/packages/cursorless-org/package.json b/packages/cursorless-org/package.json
index ebe438bc56..856280b0f8 100644
--- a/packages/cursorless-org/package.json
+++ b/packages/cursorless-org/package.json
@@ -15,8 +15,7 @@
},
"postcss": {
"plugins": {
- "tailwindcss": {},
- "autoprefixer": {}
+ "@tailwindcss/postcss": {}
}
},
"scripts": {
@@ -41,16 +40,16 @@
},
"devDependencies": {
"@svgr/webpack": "^8.1.0",
+ "@tailwindcss/postcss": "^4.1.11",
"@types/mdx": "^2.0.13",
"@types/node": "^24.1.0",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
- "autoprefixer": "^10.4.21",
"eslint": "^9.31.0",
"eslint-config-next": "^15.4.4",
"http-server": "^14.1.1",
"postcss": "^8.5.6",
- "tailwindcss": "^3.4.17",
+ "tailwindcss": "^4.1.11",
"typescript": "^5.8.3"
}
}
diff --git a/packages/cursorless-org/src/components/Layout.tsx b/packages/cursorless-org/src/components/Layout.tsx
index 6393223287..2b5df0870d 100644
--- a/packages/cursorless-org/src/components/Layout.tsx
+++ b/packages/cursorless-org/src/components/Layout.tsx
@@ -45,14 +45,14 @@ const components: MDXComponents = {
// FIXME: Figure out how to use next/image with MDX
// eslint-disable-next-line @next/next/no-img-element
),
CalloutBox: ({ children }) => (
-
+
{children}
),
@@ -60,7 +60,7 @@ const components: MDXComponents = {
{children}
),
Testimonial: ({ children, src, name, title, company }) => (
-
+
{children}
@@ -71,7 +71,7 @@ const components: MDXComponents = {
src={src}
alt={name}
/>
-
+
{name}
@@ -82,7 +82,7 @@ const components: MDXComponents = {
),
Tiers: ({ children }) => (
-
-
+
diff --git a/packages/cursorless-org/src/styles/globals.css b/packages/cursorless-org/src/styles/globals.css
index f839c576cc..9187288686 100644
--- a/packages/cursorless-org/src/styles/globals.css
+++ b/packages/cursorless-org/src/styles/globals.css
@@ -1,6 +1,6 @@
-@tailwind components;
-@tailwind base;
-@tailwind utilities;
+@import "tailwindcss";
+
+@config "../../tailwind.config.js";
:root {
--safe-area-inset-top: env(safe-area-inset-top);
diff --git a/packages/cursorless-org/tailwind.config.js b/packages/cursorless-org/tailwind.config.js
index 10f42e334e..6c5fb3dd53 100644
--- a/packages/cursorless-org/tailwind.config.js
+++ b/packages/cursorless-org/tailwind.config.js
@@ -1,6 +1,5 @@
-import { fontFamily as _fontFamily } from "tailwindcss/defaultTheme";
-import { join } from "path";
-import { readFileSync } from "fs";
+import { fontFamily } from "tailwindcss/defaultTheme";
+import { readFileSync } from "node:fs";
const CONTENT_RATIO = 1000 / 814;
@@ -44,60 +43,59 @@ const {
} = getScalingStrings(5, 5);
const references = JSON.parse(
- // eslint-disable-next-line unicorn/prefer-module
- readFileSync(join(__dirname, "tsconfig.json"), "utf-8"),
+ readFileSync("tsconfig.json", "utf-8"),
).references.map((ref) => ref.path);
/** @type {import('tailwindcss').Config} */
-export const content = [".", ...references].map(
- (pkg) => `${pkg}/src/**/*.{js,ts,jsx,tsx}`,
-);
-export const theme = {
- extend: {
- screens: {
- stretched: { raw: "(min-aspect-ratio: 2/1), (max-aspect-ratio: 1/1)" },
- },
- fontFamily: {
- mono: ["Inconsolata", ..._fontFamily.mono],
- monoWide: ["Inconsolata-SemiExpanded", ..._fontFamily.mono],
- },
- width: {
- smBase: smallWidth,
- stretchedBase: stretchedWidth,
- },
- height: {
- smBase: smallHeight,
- stretchedBase: stretchedHeight,
- },
- fontSize: {
- smBase: smallFontSize,
- stretchedBase: stretchedFontSize,
- xs: "1.2em",
- lg: "1.8em",
- "2xl": "2.4em",
- "3xl": "3.6em",
- },
- colors: {
- salmon: {
- 100: "#FFFAF8",
- 300: "#F8C9BA",
- 400: "#FF9273",
- 700: "#372e2a",
- 800: "#161110",
- 900: "#0A0707",
+export default {
+ content: [".", ...references].map((pkg) => `${pkg}/src/**/*.{js,ts,jsx,tsx}`),
+ theme: {
+ extend: {
+ screens: {
+ stretched: { raw: "(min-aspect-ratio: 2/1), (max-aspect-ratio: 1/1)" },
+ },
+ fontFamily: {
+ mono: ["Inconsolata", ...fontFamily.mono],
+ monoWide: ["Inconsolata-SemiExpanded", ...fontFamily.mono],
+ },
+ width: {
+ smBase: smallWidth,
+ stretchedBase: stretchedWidth,
+ },
+ height: {
+ smBase: smallHeight,
+ stretchedBase: stretchedHeight,
+ },
+ fontSize: {
+ smBase: smallFontSize,
+ stretchedBase: stretchedFontSize,
+ xs: "1.2em",
+ lg: "1.8em",
+ "2xl": "2.4em",
+ "3xl": "3.6em",
},
- teal: {
- 100: "#F9FFFE",
- 200: "#CDFFF9",
- 300: "#99FFF3",
- 400: "#00907F",
- 500: "#47D4C3",
- 600: "#0F776B",
- 700: "#005349",
- 800: "#00443C",
- 900: "#00110F",
+ colors: {
+ salmon: {
+ 100: "#FFFAF8",
+ 300: "#F8C9BA",
+ 400: "#FF9273",
+ 700: "#372e2a",
+ 800: "#161110",
+ 900: "#0A0707",
+ },
+ teal: {
+ 100: "#F9FFFE",
+ 200: "#CDFFF9",
+ 300: "#99FFF3",
+ 400: "#00907F",
+ 500: "#47D4C3",
+ 600: "#0F776B",
+ 700: "#005349",
+ 800: "#00443C",
+ 900: "#00110F",
+ },
},
},
},
+ plugins: [],
};
-export const plugins = [];
diff --git a/packages/cursorless-vscode-tutorial-webview/package.json b/packages/cursorless-vscode-tutorial-webview/package.json
index f2852ac9ca..c6a49f6791 100644
--- a/packages/cursorless-vscode-tutorial-webview/package.json
+++ b/packages/cursorless-vscode-tutorial-webview/package.json
@@ -14,7 +14,7 @@
"watch:tailwind": "pnpm build:tailwind --watch",
"watch": "pnpm run --filter @cursorless/cursorless-vscode-tutorial-webview --parallel '/^watch:.*/'",
"build:esbuild": "esbuild ./src/index.tsx --sourcemap --format=cjs --bundle --outfile=./out/index.js",
- "build:tailwind": "tailwindcss -i ./src/index.css -o ./out/index.css",
+ "build:tailwind": "pnpx @tailwindcss/cli -i ./src/index.css -o ./out/index.css",
"build": "pnpm build:esbuild --minify && pnpm build:tailwind --minify",
"build:dev": "pnpm build:esbuild && pnpm build:tailwind",
"clean": "rm -rf ./out tsconfig.tsbuildinfo ./dist ./build"
@@ -28,6 +28,6 @@
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@types/vscode-webview": "^1.57.5",
- "tailwindcss": "^3.4.17"
+ "tailwindcss": "^4.1.11"
}
}
diff --git a/packages/cursorless-vscode-tutorial-webview/src/App.tsx b/packages/cursorless-vscode-tutorial-webview/src/App.tsx
index f3e72c477c..cbadb82faa 100644
--- a/packages/cursorless-vscode-tutorial-webview/src/App.tsx
+++ b/packages/cursorless-vscode-tutorial-webview/src/App.tsx
@@ -62,7 +62,7 @@ export const App: FunctionComponent = ({ vscode }) => {
case "doingTutorial":
return state.hasErrors ? (
-
+
Error
diff --git a/packages/cursorless-vscode-tutorial-webview/src/ProgressBar.tsx b/packages/cursorless-vscode-tutorial-webview/src/ProgressBar.tsx
index 48f5538264..ba1de26be3 100644
--- a/packages/cursorless-vscode-tutorial-webview/src/ProgressBar.tsx
+++ b/packages/cursorless-vscode-tutorial-webview/src/ProgressBar.tsx
@@ -16,9 +16,9 @@ export const ProgressBar: FunctionComponent = ({
}) => {
const progress = ((currentStep + 1) / stepCount) * 100;
return (
-
+
diff --git a/packages/cursorless-vscode-tutorial-webview/src/index.css b/packages/cursorless-vscode-tutorial-webview/src/index.css
index b5c61c9567..ee1180cd9e 100644
--- a/packages/cursorless-vscode-tutorial-webview/src/index.css
+++ b/packages/cursorless-vscode-tutorial-webview/src/index.css
@@ -1,3 +1,7 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
+@import "tailwindcss";
+
+@config "../tailwind.config.js";
+
+@theme {
+ --text-2xs: 0.625rem;
+}
diff --git a/packages/cursorless-vscode-tutorial-webview/tailwind.config.js b/packages/cursorless-vscode-tutorial-webview/tailwind.config.js
index fa89491448..1f717a9105 100644
--- a/packages/cursorless-vscode-tutorial-webview/tailwind.config.js
+++ b/packages/cursorless-vscode-tutorial-webview/tailwind.config.js
@@ -1,17 +1,17 @@
-import { readFileSync } from "fs";
+import { readFileSync } from "node:fs";
const references = JSON.parse(
readFileSync("tsconfig.json", "utf-8"),
).references.map((ref) => ref.path);
-export const content = [".", ...references].map(
- (dir) => `${dir}/src/**/*!(*.stories|*.spec).{ts,tsx,html}`,
-);
-export const theme = {
- extend: {
- fontSize: {
- ["2xs"]: "0.625rem",
- },
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: [".", ...references].flatMap((pkg) => [
+ `${pkg}/src/**/*.{ts,tsx,html}`,
+ `!${pkg}/src/**/*.{stories,spec}.{ts,tsx,html}`,
+ ]),
+ theme: {
+ extend: {},
},
+ plugins: [],
};
-export const plugins = [];
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 7d2dedb626..0fdb48c64e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -122,7 +122,7 @@ importers:
version: 30.0.5
ts-jest:
specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.8)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.1.0))(typescript@5.8.3)
+ version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.8)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.1.0)(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3)))(typescript@5.8.3)
typescript:
specifier: ^5.8.3
version: 5.8.3
@@ -142,6 +142,9 @@ importers:
'@effortlessmotion/html-webpack-inline-source-plugin':
specifier: ^1.0.3
version: 1.0.3(html-webpack-plugin@5.6.3(webpack@5.100.2))(webpack@5.100.2)
+ '@tailwindcss/postcss':
+ specifier: ^4.1.11
+ version: 4.1.11
'@testing-library/dom':
specifier: ^10.4.0
version: 10.4.0
@@ -163,9 +166,6 @@ importers:
'@types/webpack':
specifier: ^5.28.5
version: 5.28.5(esbuild@0.25.8)(webpack-cli@6.0.1)
- autoprefixer:
- specifier: ^10.4.21
- version: 10.4.21(postcss@8.5.6)
css-loader:
specifier: ^7.1.2
version: 7.1.2(webpack@5.100.2)
@@ -185,8 +185,8 @@ importers:
specifier: ^4.0.0
version: 4.0.0(webpack@5.100.2)
tailwindcss:
- specifier: ^3.4.17
- version: 3.4.17(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3))
+ specifier: ^4.1.11
+ version: 4.1.11
ts-loader:
specifier: ^9.5.2
version: 9.5.2(typescript@5.8.3)(webpack@5.100.2)
@@ -498,6 +498,9 @@ importers:
'@svgr/webpack':
specifier: ^8.1.0
version: 8.1.0(typescript@5.8.3)
+ '@tailwindcss/postcss':
+ specifier: ^4.1.11
+ version: 4.1.11
'@types/mdx':
specifier: ^2.0.13
version: 2.0.13
@@ -510,9 +513,6 @@ importers:
'@types/react-dom':
specifier: ^19.1.6
version: 19.1.6(@types/react@19.1.8)
- autoprefixer:
- specifier: ^10.4.21
- version: 10.4.21(postcss@8.5.6)
eslint:
specifier: ^9.31.0
version: 9.31.0(jiti@2.5.1)
@@ -526,8 +526,8 @@ importers:
specifier: ^8.5.6
version: 8.5.6
tailwindcss:
- specifier: ^3.4.17
- version: 3.4.17(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3))
+ specifier: ^4.1.11
+ version: 4.1.11
typescript:
specifier: ^5.8.3
version: 5.8.3
@@ -608,8 +608,8 @@ importers:
specifier: ^8.5.6
version: 8.5.6
tailwindcss:
- specifier: ^3.4.17
- version: 3.4.17(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3))
+ specifier: ^4.1.11
+ version: 4.1.11
typescript:
specifier: ^5.8.3
version: 5.8.3
@@ -804,8 +804,8 @@ importers:
specifier: ^1.57.5
version: 1.57.5
tailwindcss:
- specifier: ^3.4.17
- version: 3.4.17(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3))
+ specifier: ^4.1.11
+ version: 4.1.11
packages/meta-updater:
dependencies:
@@ -4454,9 +4454,6 @@ packages:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
- any-promise@1.3.0:
- resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
-
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -4756,10 +4753,6 @@ packages:
camel-case@4.1.2:
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
- camelcase-css@2.0.1:
- resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
- engines: {node: '>= 6'}
-
camelcase-keys@6.2.2:
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
engines: {node: '>=8'}
@@ -5027,10 +5020,6 @@ packages:
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
- commander@4.1.1:
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
- engines: {node: '>= 6'}
-
commander@5.1.0:
resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
engines: {node: '>= 6'}
@@ -5494,9 +5483,6 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
- didyoumean@1.2.2:
- resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
-
diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
@@ -5520,9 +5506,6 @@ packages:
discontinuous-range@1.0.0:
resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==}
- dlv@1.1.3:
- resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
-
dns-packet@5.6.1:
resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
engines: {node: '>=6'}
@@ -7882,9 +7865,6 @@ packages:
mux-embed@5.9.0:
resolution: {integrity: sha512-wmunL3uoPhma/tWy8PrDPZkvJpXvSFBwbD3KkC4PG8Ztjfb1X3hRJwGUAQyRz7z99b/ovLm2UTTitrkvStjH4w==}
- mz@2.7.0:
- resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
-
nano-css@5.6.2:
resolution: {integrity: sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw==}
peerDependencies:
@@ -8066,10 +8046,6 @@ packages:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
- object-hash@3.0.0:
- resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
- engines: {node: '>= 6'}
-
object-inspect@1.13.4:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
@@ -8369,10 +8345,6 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
- pify@2.3.0:
- resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
- engines: {node: '>=0.10.0'}
-
pify@4.0.1:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
@@ -8541,36 +8513,12 @@ packages:
peerDependencies:
postcss: ^8.4
- postcss-import@15.1.0:
- resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
- engines: {node: '>=14.0.0'}
- peerDependencies:
- postcss: ^8.0.0
-
- postcss-js@4.0.1:
- resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
- engines: {node: ^12 || ^14 || >= 16}
- peerDependencies:
- postcss: ^8.4.21
-
postcss-lab-function@7.0.10:
resolution: {integrity: sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==}
engines: {node: '>=18'}
peerDependencies:
postcss: ^8.4
- postcss-load-config@4.0.2:
- resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
- engines: {node: '>= 14'}
- peerDependencies:
- postcss: '>=8.0.9'
- ts-node: '>=9.0.0'
- peerDependenciesMeta:
- postcss:
- optional: true
- ts-node:
- optional: true
-
postcss-loader@7.3.4:
resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==}
engines: {node: '>= 14.15.0'}
@@ -8663,12 +8611,6 @@ packages:
peerDependencies:
postcss: ^8.1.0
- postcss-nested@6.2.0:
- resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
-
postcss-nesting@13.0.2:
resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==}
engines: {node: '>=18'}
@@ -9129,9 +9071,6 @@ packages:
resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==}
engines: {node: '>=0.10.0'}
- read-cache@1.0.0:
- resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
-
read-cmd-shim@4.0.0:
resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@@ -9906,11 +9845,6 @@ packages:
stylis@4.3.6:
resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
- sucrase@3.35.0:
- resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
- engines: {node: '>=16 || 14 >=14.17'}
- hasBin: true
-
super-media-element@1.4.2:
resolution: {integrity: sha512-9pP/CVNp4NF2MNlRzLwQkjiTgKKe9WYXrLh9+8QokWmMxz+zt2mf1utkWLco26IuA3AfVcTb//qtlTIjY3VHxA==}
@@ -9955,11 +9889,6 @@ packages:
resolution: {integrity: sha512-IQ6G4wK/t8VBauYiGPLx+d3fA5XjSVagjWV5SIYzvEvglbQjwEcukeYI68JOPpdydjxhZ9sIgzRlSmwSpphHyw==}
engines: {node: '>= 6.0.0'}
- tailwindcss@3.4.17:
- resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
- engines: {node: '>=14.0.0'}
- hasBin: true
-
tailwindcss@4.1.11:
resolution: {integrity: sha512-2E9TBm6MDD/xKYe+dvJZAmg3yxIEDNRc0jwlNyDg/4Fil2QcSLjFKGVff0lAf1jjeaArlG/M75Ey/EYr/OJtBA==}
@@ -10010,13 +9939,6 @@ packages:
text-hex@1.0.0:
resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==}
- thenify-all@1.6.0:
- resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
- engines: {node: '>=0.8'}
-
- thenify@3.3.1:
- resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
-
thingies@1.21.0:
resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==}
engines: {node: '>=10.18'}
@@ -10129,9 +10051,6 @@ packages:
ts-easing@0.2.0:
resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==}
- ts-interface-checker@0.1.13:
- resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
-
ts-jest@29.4.0:
resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==}
engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
@@ -10735,11 +10654,6 @@ packages:
resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==}
engines: {node: '>=18'}
- yaml@2.8.0:
- resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==}
- engines: {node: '>= 14.6'}
- hasBin: true
-
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
@@ -15594,8 +15508,6 @@ snapshots:
ansi-styles@6.2.1: {}
- any-promise@1.3.0: {}
-
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
@@ -16001,8 +15913,6 @@ snapshots:
pascal-case: 3.1.2
tslib: 2.8.1
- camelcase-css@2.0.1: {}
-
camelcase-keys@6.2.2:
dependencies:
camelcase: 5.3.1
@@ -16253,8 +16163,6 @@ snapshots:
commander@2.20.3: {}
- commander@4.1.1: {}
-
commander@5.1.0: {}
commander@7.2.0: {}
@@ -16707,8 +16615,6 @@ snapshots:
dependencies:
dequal: 2.0.3
- didyoumean@1.2.2: {}
-
diff@4.0.2: {}
diff@5.2.0: {}
@@ -16725,8 +16631,6 @@ snapshots:
discontinuous-range@1.0.0: {}
- dlv@1.1.3: {}
-
dns-packet@5.6.1:
dependencies:
'@leichtgewicht/ip-codec': 2.0.5
@@ -19883,12 +19787,6 @@ snapshots:
mux-embed@5.9.0: {}
- mz@2.7.0:
- dependencies:
- any-promise: 1.3.0
- object-assign: 4.1.1
- thenify-all: 1.6.0
-
nano-css@5.6.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
@@ -20080,8 +19978,6 @@ snapshots:
object-assign@4.1.1: {}
- object-hash@3.0.0: {}
-
object-inspect@1.13.4: {}
object-keys@1.1.1: {}
@@ -20388,8 +20284,6 @@ snapshots:
picomatch@4.0.3: {}
- pify@2.3.0: {}
-
pify@4.0.1: {}
pirates@4.0.7: {}
@@ -20552,18 +20446,6 @@ snapshots:
postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-import@15.1.0(postcss@8.5.6):
- dependencies:
- postcss: 8.5.6
- postcss-value-parser: 4.2.0
- read-cache: 1.0.0
- resolve: 1.22.10
-
- postcss-js@4.0.1(postcss@8.5.6):
- dependencies:
- camelcase-css: 2.0.1
- postcss: 8.5.6
-
postcss-lab-function@7.0.10(postcss@8.5.6):
dependencies:
'@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
@@ -20573,14 +20455,6 @@ snapshots:
'@csstools/utilities': 2.0.0(postcss@8.5.6)
postcss: 8.5.6
- postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3)):
- dependencies:
- lilconfig: 3.1.3
- yaml: 2.8.0
- optionalDependencies:
- postcss: 8.5.6
- ts-node: 10.9.2(@types/node@24.1.0)(typescript@5.8.3)
-
postcss-loader@7.3.4(postcss@8.5.6)(typescript@5.8.3)(webpack@5.100.2(esbuild@0.25.8)):
dependencies:
cosmiconfig: 8.3.6(typescript@5.8.3)
@@ -20672,11 +20546,6 @@ snapshots:
icss-utils: 5.1.0(postcss@8.5.6)
postcss: 8.5.6
- postcss-nested@6.2.0(postcss@8.5.6):
- dependencies:
- postcss: 8.5.6
- postcss-selector-parser: 6.1.2
-
postcss-nesting@13.0.2(postcss@8.5.6):
dependencies:
'@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0)
@@ -21140,10 +21009,6 @@ snapshots:
react@19.1.0: {}
- read-cache@1.0.0:
- dependencies:
- pify: 2.3.0
-
read-cmd-shim@4.0.0: {}
read-ini-file@4.0.0:
@@ -22105,16 +21970,6 @@ snapshots:
stylis@4.3.6: {}
- sucrase@3.35.0:
- dependencies:
- '@jridgewell/gen-mapping': 0.3.12
- commander: 4.1.1
- glob: 10.4.5
- lines-and-columns: 1.2.4
- mz: 2.7.0
- pirates: 4.0.7
- ts-interface-checker: 0.1.13
-
super-media-element@1.4.2: {}
supports-color@7.2.0:
@@ -22174,33 +22029,6 @@ snapshots:
tail@2.2.6: {}
- tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3)):
- dependencies:
- '@alloc/quick-lru': 5.2.0
- arg: 5.0.2
- chokidar: 3.6.0
- didyoumean: 1.2.2
- dlv: 1.1.3
- fast-glob: 3.3.3
- glob-parent: 6.0.2
- is-glob: 4.0.3
- jiti: 1.21.7
- lilconfig: 3.1.3
- micromatch: 4.0.8
- normalize-path: 3.0.0
- object-hash: 3.0.0
- picocolors: 1.1.1
- postcss: 8.5.6
- postcss-import: 15.1.0(postcss@8.5.6)
- postcss-js: 4.0.1(postcss@8.5.6)
- postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3))
- postcss-nested: 6.2.0(postcss@8.5.6)
- postcss-selector-parser: 6.1.2
- resolve: 1.22.10
- sucrase: 3.35.0
- transitivePeerDependencies:
- - ts-node
-
tailwindcss@4.1.11: {}
talon-snippets@1.3.0: {}
@@ -22263,14 +22091,6 @@ snapshots:
text-hex@1.0.0: {}
- thenify-all@1.6.0:
- dependencies:
- thenify: 3.3.1
-
- thenify@3.3.1:
- dependencies:
- any-promise: 1.3.0
-
thingies@1.21.0(tslib@2.8.1):
dependencies:
tslib: 2.8.1
@@ -22357,9 +22177,7 @@ snapshots:
ts-easing@0.2.0: {}
- ts-interface-checker@0.1.13: {}
-
- ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.8)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.1.0))(typescript@5.8.3):
+ ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.8)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.1.0)(ts-node@10.9.2(@types/node@24.1.0)(typescript@5.8.3)))(typescript@5.8.3):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
@@ -23157,8 +22975,6 @@ snapshots:
yallist@5.0.0: {}
- yaml@2.8.0: {}
-
yargs-parser@21.1.1: {}
yargs-unparser@2.0.0:
|