@proofkit/cli 1.0.0 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.js +16382 -275
  3. package/package.json +11 -12
  4. package/template/nextjs/.prettierrc +3 -0
  5. package/template/nextjs/components.json +21 -0
  6. package/template/nextjs/package.json +3 -3
  7. package/template/nextjs/postcss.config.cjs +1 -0
  8. package/template/nextjs/proofkit.json +6 -1
  9. package/template/nextjs/src/config/theme/globals.css +124 -0
  10. package/template/nextjs/src/utils/styles.ts +6 -0
  11. package/template/pages/nextjs/table-edit/actions.ts +3 -2
  12. package/template/pages/nextjs/table-infinite/actions.ts +5 -5
  13. package/template/pages/nextjs/table-infinite-edit/actions.ts +6 -6
  14. package/template/vite-wv/.prettierrc +3 -0
  15. package/template/vite-wv/components.json +21 -0
  16. package/template/vite-wv/postcss.config.cjs +1 -0
  17. package/template/vite-wv/proofkit.json +6 -1
  18. package/template/vite-wv/src/config/theme/globals.css +124 -0
  19. package/template/vite-wv/src/utils/styles.ts +6 -0
  20. package/dist/acorn-AKFTBDM6.js +0 -15
  21. package/dist/angular-BOQ6FHSU.js +0 -2
  22. package/dist/babel-ZTOORN7K.js +0 -15
  23. package/dist/chunk-4LISTI44.js +0 -1
  24. package/dist/estree-KOJPX4S6.js +0 -36
  25. package/dist/flow-RCI44GYZ.js +0 -19
  26. package/dist/glimmer-GV5EF5E4.js +0 -30
  27. package/dist/graphql-YXQNPQWM.js +0 -29
  28. package/dist/html-ZAJTRROK.js +0 -22
  29. package/dist/markdown-Q75DTQI7.js +0 -63
  30. package/dist/meriyah-32K7GBV5.js +0 -4
  31. package/dist/postcss-WWYO4PGL.js +0 -54
  32. package/dist/typescript-M6N7JDNQ.js +0 -20
  33. package/dist/yaml-LY7PNAYV.js +0 -161
  34. package/index.d.ts +0 -19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proofkit/cli",
3
- "version": "1.0.0",
3
+ "version": "1.1.5",
4
4
  "description": "Create web application with the ProofKit stack",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -20,7 +20,7 @@
20
20
  "exports": {
21
21
  ".": {
22
22
  "import": "./dist/index.js",
23
- "types": "./index.d.ts"
23
+ "types": "./dist/index.d.ts"
24
24
  }
25
25
  },
26
26
  "bin": {
@@ -28,7 +28,6 @@
28
28
  },
29
29
  "files": [
30
30
  "dist",
31
- "index.d.ts",
32
31
  "template",
33
32
  "README.md",
34
33
  "LICENSE",
@@ -56,11 +55,14 @@
56
55
  "jsonc-parser": "^3.3.1",
57
56
  "open": "^10.1.0",
58
57
  "ora": "6.3.1",
58
+ "prettier": "^3.5.3",
59
+ "prettier-plugin-tailwindcss": "^0.6.5",
59
60
  "randomstring": "^1.3.0",
60
61
  "semver": "^7.6.3",
61
62
  "sort-package-json": "^2.10.0",
62
63
  "ts-morph": "^26.0.0",
63
- "@proofkit/fmdapi": "5.0.0"
64
+ "@proofkit/fmdapi": "5.0.0",
65
+ "@proofkit/typegen": "1.0.6"
64
66
  },
65
67
  "devDependencies": {
66
68
  "@auth/drizzle-adapter": "^1.1.0",
@@ -78,30 +80,27 @@
78
80
  "@types/axios": "^0.14.0",
79
81
  "@types/fs-extra": "^11.0.4",
80
82
  "@types/gradient-string": "^1.1.6",
81
- "@types/node": "^22.15.19",
83
+ "@types/node": "^22.15.32",
82
84
  "@types/randomstring": "^1.3.0",
83
- "@types/react": "^19.1.2",
85
+ "@types/react": "^19.1.8",
84
86
  "@types/semver": "^7.5.8",
85
87
  "@vitest/coverage-v8": "^1.4.0",
86
88
  "drizzle-kit": "^0.21.4",
87
89
  "drizzle-orm": "^0.30.10",
88
90
  "mysql2": "^3.9.7",
89
- "next": "^15.3.3",
91
+ "next": "^15.3.4",
90
92
  "next-auth": "^4.24.7",
91
93
  "postgres": "^3.4.4",
92
- "prettier": "^3.5.3",
93
- "prettier-plugin-tailwindcss": "^0.6.5",
94
94
  "prisma": "^5.14.0",
95
95
  "react": "^19.1.0",
96
96
  "react-dom": "^19.1.0",
97
97
  "superjson": "^2.2.1",
98
- "tailwindcss": "^4.1.4",
98
+ "tailwindcss": "^4.1.10",
99
99
  "tsup": "^6.7.0",
100
100
  "type-fest": "^3.13.1",
101
101
  "typescript": "^5.8.3",
102
102
  "vitest": "^3.2.3",
103
- "zod": "3.25.64",
104
- "@proofkit/typegen": "1.0.0"
103
+ "zod": "3.25.64"
105
104
  },
106
105
  "scripts": {
107
106
  "typecheck": "tsc",
@@ -0,0 +1,3 @@
1
+ {
2
+ "plugins": ["prettier-plugin-tailwindcss"]
3
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "new-york",
4
+ "rsc": true,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "",
8
+ "css": "src/config/theme/globals.css",
9
+ "baseColor": "neutral",
10
+ "cssVariables": true,
11
+ "prefix": "tw:"
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/utils/styles",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/utils",
18
+ "hooks": "@/utils/hooks"
19
+ },
20
+ "iconLibrary": "lucide"
21
+ }
@@ -12,9 +12,9 @@
12
12
  "deploy": "proofkit deploy"
13
13
  },
14
14
  "dependencies": {
15
- "@hookform/resolvers": "^3.10.0",
16
- "@next-safe-action/adapter-react-hook-form": "^1.0.13",
17
- "next-safe-action": "^7.10.4",
15
+ "@hookform/resolvers": "^5.1.1",
16
+ "@next-safe-action/adapter-react-hook-form": "^2.0.0",
17
+ "next-safe-action": "^8.0.4",
18
18
  "react-hook-form": "^7.54.2",
19
19
  "@tabler/icons-react": "^3.30.0",
20
20
  "@mantine/core": "^7.17.0",
@@ -1,5 +1,6 @@
1
1
  module.exports = {
2
2
  plugins: {
3
+ "@tailwindcss/postcss": {},
3
4
  "postcss-preset-mantine": {},
4
5
  "postcss-simple-vars": {
5
6
  variables: {
@@ -1 +1,6 @@
1
- { "auth": { "type": "none" }, "envFile": ".env", "appType": "browser" }
1
+ {
2
+ "auth": { "type": "none" },
3
+ "envFile": ".env",
4
+ "appType": "browser",
5
+ "appliedUpgrades": ["shadcn", "cursorRules"]
6
+ }
@@ -1 +1,125 @@
1
1
  /* Add global styles here */
2
+
3
+ @import "tailwindcss" prefix(tw);
4
+ @import "tw-animate-css";
5
+
6
+ @custom-variant dark (&:is(.dark *));
7
+
8
+ :root {
9
+ --background: oklch(1 0 0);
10
+ --foreground: oklch(0.145 0 0);
11
+ --card: oklch(1 0 0);
12
+ --card-foreground: oklch(0.145 0 0);
13
+ --popover: oklch(1 0 0);
14
+ --popover-foreground: oklch(0.145 0 0);
15
+ --primary: oklch(0.205 0 0);
16
+ --primary-foreground: oklch(0.985 0 0);
17
+ --secondary: oklch(0.97 0 0);
18
+ --secondary-foreground: oklch(0.205 0 0);
19
+ --muted: oklch(0.97 0 0);
20
+ --muted-foreground: oklch(0.556 0 0);
21
+ --accent: oklch(0.97 0 0);
22
+ --accent-foreground: oklch(0.205 0 0);
23
+ --destructive: oklch(0.577 0.245 27.325);
24
+ --destructive-foreground: oklch(0.577 0.245 27.325);
25
+ --border: oklch(0.922 0 0);
26
+ --input: oklch(0.922 0 0);
27
+ --ring: oklch(0.708 0 0);
28
+ --chart-1: oklch(0.646 0.222 41.116);
29
+ --chart-2: oklch(0.6 0.118 184.704);
30
+ --chart-3: oklch(0.398 0.07 227.392);
31
+ --chart-4: oklch(0.828 0.189 84.429);
32
+ --chart-5: oklch(0.769 0.188 70.08);
33
+ --radius: 0.625rem;
34
+ --sidebar: oklch(0.985 0 0);
35
+ --sidebar-foreground: oklch(0.145 0 0);
36
+ --sidebar-primary: oklch(0.205 0 0);
37
+ --sidebar-primary-foreground: oklch(0.985 0 0);
38
+ --sidebar-accent: oklch(0.97 0 0);
39
+ --sidebar-accent-foreground: oklch(0.205 0 0);
40
+ --sidebar-border: oklch(0.922 0 0);
41
+ --sidebar-ring: oklch(0.708 0 0);
42
+ }
43
+
44
+ .dark {
45
+ --background: oklch(0.145 0 0);
46
+ --foreground: oklch(0.985 0 0);
47
+ --card: oklch(0.145 0 0);
48
+ --card-foreground: oklch(0.985 0 0);
49
+ --popover: oklch(0.145 0 0);
50
+ --popover-foreground: oklch(0.985 0 0);
51
+ --primary: oklch(0.985 0 0);
52
+ --primary-foreground: oklch(0.205 0 0);
53
+ --secondary: oklch(0.269 0 0);
54
+ --secondary-foreground: oklch(0.985 0 0);
55
+ --muted: oklch(0.269 0 0);
56
+ --muted-foreground: oklch(0.708 0 0);
57
+ --accent: oklch(0.269 0 0);
58
+ --accent-foreground: oklch(0.985 0 0);
59
+ --destructive: oklch(0.396 0.141 25.723);
60
+ --destructive-foreground: oklch(0.637 0.237 25.331);
61
+ --border: oklch(0.269 0 0);
62
+ --input: oklch(0.269 0 0);
63
+ --ring: oklch(0.439 0 0);
64
+ --chart-1: oklch(0.488 0.243 264.376);
65
+ --chart-2: oklch(0.696 0.17 162.48);
66
+ --chart-3: oklch(0.769 0.188 70.08);
67
+ --chart-4: oklch(0.627 0.265 303.9);
68
+ --chart-5: oklch(0.645 0.246 16.439);
69
+ --sidebar: oklch(0.205 0 0);
70
+ --sidebar-foreground: oklch(0.985 0 0);
71
+ --sidebar-primary: oklch(0.488 0.243 264.376);
72
+ --sidebar-primary-foreground: oklch(0.985 0 0);
73
+ --sidebar-accent: oklch(0.269 0 0);
74
+ --sidebar-accent-foreground: oklch(0.985 0 0);
75
+ --sidebar-border: oklch(0.269 0 0);
76
+ --sidebar-ring: oklch(0.439 0 0);
77
+ }
78
+
79
+ @theme inline {
80
+ --color-background: var(--background);
81
+ --color-foreground: var(--foreground);
82
+ --color-card: var(--card);
83
+ --color-card-foreground: var(--card-foreground);
84
+ --color-popover: var(--popover);
85
+ --color-popover-foreground: var(--popover-foreground);
86
+ --color-primary: var(--primary);
87
+ --color-primary-foreground: var(--primary-foreground);
88
+ --color-secondary: var(--secondary);
89
+ --color-secondary-foreground: var(--secondary-foreground);
90
+ --color-muted: var(--muted);
91
+ --color-muted-foreground: var(--muted-foreground);
92
+ --color-accent: var(--accent);
93
+ --color-accent-foreground: var(--accent-foreground);
94
+ --color-destructive: var(--destructive);
95
+ --color-destructive-foreground: var(--destructive-foreground);
96
+ --color-border: var(--border);
97
+ --color-input: var(--input);
98
+ --color-ring: var(--ring);
99
+ --color-chart-1: var(--chart-1);
100
+ --color-chart-2: var(--chart-2);
101
+ --color-chart-3: var(--chart-3);
102
+ --color-chart-4: var(--chart-4);
103
+ --color-chart-5: var(--chart-5);
104
+ --radius-sm: calc(var(--radius) - 4px);
105
+ --radius-md: calc(var(--radius) - 2px);
106
+ --radius-lg: var(--radius);
107
+ --radius-xl: calc(var(--radius) + 4px);
108
+ --color-sidebar: var(--sidebar);
109
+ --color-sidebar-foreground: var(--sidebar-foreground);
110
+ --color-sidebar-primary: var(--sidebar-primary);
111
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
112
+ --color-sidebar-accent: var(--sidebar-accent);
113
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
114
+ --color-sidebar-border: var(--sidebar-border);
115
+ --color-sidebar-ring: var(--sidebar-ring);
116
+ }
117
+
118
+ @layer base {
119
+ * {
120
+ @apply tw:border-border tw:outline-ring/50;
121
+ }
122
+ body {
123
+ @apply tw:bg-background tw:text-foreground;
124
+ }
125
+ }
@@ -0,0 +1,6 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+
4
+ export function cn(...inputs: any[]) {
5
+ return twMerge(clsx(inputs));
6
+ }
@@ -1,12 +1,13 @@
1
1
  "use server";
2
2
 
3
- import { __CLIENT_NAME__ } from "@/config/schemas/__SOURCE_NAME__/client";
4
3
  import { __ZOD_TYPE_NAME__ } from "@/config/schemas/__SOURCE_NAME__/__SCHEMA_NAME__";
4
+ import { __CLIENT_NAME__ } from "@/config/schemas/__SOURCE_NAME__/client";
5
5
  import { __ACTION_CLIENT__ } from "@/server/safe-action";
6
+
6
7
  import { idFieldName } from "./schema";
7
8
 
8
9
  export const updateRecord = __ACTION_CLIENT__
9
- .schema(__ZOD_TYPE_NAME__.partial())
10
+ .inputSchema(__ZOD_TYPE_NAME__.partial())
10
11
  .action(async ({ parsedInput }) => {
11
12
  const id = parsedInput[idFieldName];
12
13
  delete parsedInput[idFieldName]; // this ensures the id field value is not included in the updated fieldData
@@ -3,13 +3,13 @@
3
3
  import { __TYPE_NAME__ } from "@/config/schemas/__SOURCE_NAME__/__SCHEMA_NAME__";
4
4
  import { __CLIENT_NAME__ } from "@/config/schemas/__SOURCE_NAME__/client";
5
5
  import { __ACTION_CLIENT__ } from "@/server/safe-action";
6
- import { ListParams, Query } from "@proofkit/fmdapi/dist/client-types.js";
6
+ import { clientTypes } from "@proofkit/fmdapi";
7
7
  import dayjs from "dayjs";
8
8
  import { z } from "zod/v4";
9
9
 
10
10
  const limit = 50; // raise or lower this number depending on how your layout performs
11
11
  export const fetchData = __ACTION_CLIENT__
12
- .schema(
12
+ .inputSchema(
13
13
  z.object({
14
14
  offset: z.number().catch(0),
15
15
  sorting: z.array(
@@ -20,8 +20,8 @@ export const fetchData = __ACTION_CLIENT__
20
20
  )
21
21
  .action(async ({ parsedInput: { offset, sorting, columnFilters } }) => {
22
22
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
- const getOptions: ListParams<__TYPE_NAME__, any> & {
24
- query: Query<__TYPE_NAME__>[];
23
+ const getOptions: clientTypes.ListParams<__TYPE_NAME__, any> & {
24
+ query: clientTypes.Query<__TYPE_NAME__>[];
25
25
  } = {
26
26
  limit,
27
27
  offset,
@@ -49,7 +49,7 @@ export const fetchData = __ACTION_CLIENT__
49
49
  }
50
50
  return null;
51
51
  })
52
- .filter(Boolean) as Query<any>[];
52
+ .filter(Boolean) as clientTypes.Query<any>[];
53
53
  }
54
54
 
55
55
  const data = await __CLIENT_NAME__.find(getOptions);
@@ -6,7 +6,7 @@ import {
6
6
  } from "@/config/schemas/__SOURCE_NAME__/__SCHEMA_NAME__";
7
7
  import { __CLIENT_NAME__ } from "@/config/schemas/__SOURCE_NAME__/client";
8
8
  import { __ACTION_CLIENT__ } from "@/server/safe-action";
9
- import { ListParams, Query } from "@proofkit/fmdapi/dist/client-types.js";
9
+ import { clientTypes } from "@proofkit/fmdapi";
10
10
  import dayjs from "dayjs";
11
11
  import { z } from "zod/v4";
12
12
 
@@ -14,7 +14,7 @@ import { idFieldName } from "./schema";
14
14
 
15
15
  const limit = 50; // raise or lower this number depending on how your layout performs
16
16
  export const fetchData = __ACTION_CLIENT__
17
- .schema(
17
+ .inputSchema(
18
18
  z.object({
19
19
  offset: z.number().catch(0),
20
20
  sorting: z.array(
@@ -25,8 +25,8 @@ export const fetchData = __ACTION_CLIENT__
25
25
  )
26
26
  .action(async ({ parsedInput: { offset, sorting, columnFilters } }) => {
27
27
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
- const getOptions: ListParams<__TYPE_NAME__, any> & {
29
- query: Query<__TYPE_NAME__>[];
28
+ const getOptions: clientTypes.ListParams<__TYPE_NAME__, any> & {
29
+ query: clientTypes.Query<__TYPE_NAME__>[];
30
30
  } = {
31
31
  limit,
32
32
  offset,
@@ -54,7 +54,7 @@ export const fetchData = __ACTION_CLIENT__
54
54
  }
55
55
  return null;
56
56
  })
57
- .filter(Boolean) as Query<any>[];
57
+ .filter(Boolean) as clientTypes.Query<any>[];
58
58
  }
59
59
 
60
60
  const data = await __CLIENT_NAME__.find(getOptions);
@@ -67,7 +67,7 @@ export const fetchData = __ACTION_CLIENT__
67
67
  });
68
68
 
69
69
  export const updateRecord = __ACTION_CLIENT__
70
- .schema(__ZOD_TYPE_NAME__.partial())
70
+ .inputSchema(__ZOD_TYPE_NAME__.partial())
71
71
  .action(async ({ parsedInput }) => {
72
72
  const id = parsedInput[idFieldName];
73
73
  delete parsedInput[idFieldName]; // this ensures the id field value is not included in the updated fieldData
@@ -0,0 +1,3 @@
1
+ {
2
+ "plugins": ["prettier-plugin-tailwindcss"]
3
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "new-york",
4
+ "rsc": true,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "",
8
+ "css": "src/config/theme/globals.css",
9
+ "baseColor": "neutral",
10
+ "cssVariables": true,
11
+ "prefix": "tw:"
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/utils/styles",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/utils",
18
+ "hooks": "@/utils/hooks"
19
+ },
20
+ "iconLibrary": "lucide"
21
+ }
@@ -1,5 +1,6 @@
1
1
  module.exports = {
2
2
  plugins: {
3
+ "@tailwindcss/postcss": {},
3
4
  "postcss-preset-mantine": {},
4
5
  "postcss-simple-vars": {
5
6
  variables: {
@@ -1 +1,6 @@
1
- { "auth": { "type": "none" }, "envFile": ".env", "appType": "webviewer" }
1
+ {
2
+ "auth": { "type": "none" },
3
+ "envFile": ".env",
4
+ "appType": "webviewer",
5
+ "appliedUpgrades": ["shadcn"]
6
+ }
@@ -1 +1,125 @@
1
1
  /* Add global styles here */
2
+
3
+ @import "tailwindcss" prefix(tw);
4
+ @import "tw-animate-css";
5
+
6
+ @custom-variant dark (&:is(.dark *));
7
+
8
+ :root {
9
+ --background: oklch(1 0 0);
10
+ --foreground: oklch(0.145 0 0);
11
+ --card: oklch(1 0 0);
12
+ --card-foreground: oklch(0.145 0 0);
13
+ --popover: oklch(1 0 0);
14
+ --popover-foreground: oklch(0.145 0 0);
15
+ --primary: oklch(0.205 0 0);
16
+ --primary-foreground: oklch(0.985 0 0);
17
+ --secondary: oklch(0.97 0 0);
18
+ --secondary-foreground: oklch(0.205 0 0);
19
+ --muted: oklch(0.97 0 0);
20
+ --muted-foreground: oklch(0.556 0 0);
21
+ --accent: oklch(0.97 0 0);
22
+ --accent-foreground: oklch(0.205 0 0);
23
+ --destructive: oklch(0.577 0.245 27.325);
24
+ --destructive-foreground: oklch(0.577 0.245 27.325);
25
+ --border: oklch(0.922 0 0);
26
+ --input: oklch(0.922 0 0);
27
+ --ring: oklch(0.708 0 0);
28
+ --chart-1: oklch(0.646 0.222 41.116);
29
+ --chart-2: oklch(0.6 0.118 184.704);
30
+ --chart-3: oklch(0.398 0.07 227.392);
31
+ --chart-4: oklch(0.828 0.189 84.429);
32
+ --chart-5: oklch(0.769 0.188 70.08);
33
+ --radius: 0.625rem;
34
+ --sidebar: oklch(0.985 0 0);
35
+ --sidebar-foreground: oklch(0.145 0 0);
36
+ --sidebar-primary: oklch(0.205 0 0);
37
+ --sidebar-primary-foreground: oklch(0.985 0 0);
38
+ --sidebar-accent: oklch(0.97 0 0);
39
+ --sidebar-accent-foreground: oklch(0.205 0 0);
40
+ --sidebar-border: oklch(0.922 0 0);
41
+ --sidebar-ring: oklch(0.708 0 0);
42
+ }
43
+
44
+ .dark {
45
+ --background: oklch(0.145 0 0);
46
+ --foreground: oklch(0.985 0 0);
47
+ --card: oklch(0.145 0 0);
48
+ --card-foreground: oklch(0.985 0 0);
49
+ --popover: oklch(0.145 0 0);
50
+ --popover-foreground: oklch(0.985 0 0);
51
+ --primary: oklch(0.985 0 0);
52
+ --primary-foreground: oklch(0.205 0 0);
53
+ --secondary: oklch(0.269 0 0);
54
+ --secondary-foreground: oklch(0.985 0 0);
55
+ --muted: oklch(0.269 0 0);
56
+ --muted-foreground: oklch(0.708 0 0);
57
+ --accent: oklch(0.269 0 0);
58
+ --accent-foreground: oklch(0.985 0 0);
59
+ --destructive: oklch(0.396 0.141 25.723);
60
+ --destructive-foreground: oklch(0.637 0.237 25.331);
61
+ --border: oklch(0.269 0 0);
62
+ --input: oklch(0.269 0 0);
63
+ --ring: oklch(0.439 0 0);
64
+ --chart-1: oklch(0.488 0.243 264.376);
65
+ --chart-2: oklch(0.696 0.17 162.48);
66
+ --chart-3: oklch(0.769 0.188 70.08);
67
+ --chart-4: oklch(0.627 0.265 303.9);
68
+ --chart-5: oklch(0.645 0.246 16.439);
69
+ --sidebar: oklch(0.205 0 0);
70
+ --sidebar-foreground: oklch(0.985 0 0);
71
+ --sidebar-primary: oklch(0.488 0.243 264.376);
72
+ --sidebar-primary-foreground: oklch(0.985 0 0);
73
+ --sidebar-accent: oklch(0.269 0 0);
74
+ --sidebar-accent-foreground: oklch(0.985 0 0);
75
+ --sidebar-border: oklch(0.269 0 0);
76
+ --sidebar-ring: oklch(0.439 0 0);
77
+ }
78
+
79
+ @theme inline {
80
+ --color-background: var(--background);
81
+ --color-foreground: var(--foreground);
82
+ --color-card: var(--card);
83
+ --color-card-foreground: var(--card-foreground);
84
+ --color-popover: var(--popover);
85
+ --color-popover-foreground: var(--popover-foreground);
86
+ --color-primary: var(--primary);
87
+ --color-primary-foreground: var(--primary-foreground);
88
+ --color-secondary: var(--secondary);
89
+ --color-secondary-foreground: var(--secondary-foreground);
90
+ --color-muted: var(--muted);
91
+ --color-muted-foreground: var(--muted-foreground);
92
+ --color-accent: var(--accent);
93
+ --color-accent-foreground: var(--accent-foreground);
94
+ --color-destructive: var(--destructive);
95
+ --color-destructive-foreground: var(--destructive-foreground);
96
+ --color-border: var(--border);
97
+ --color-input: var(--input);
98
+ --color-ring: var(--ring);
99
+ --color-chart-1: var(--chart-1);
100
+ --color-chart-2: var(--chart-2);
101
+ --color-chart-3: var(--chart-3);
102
+ --color-chart-4: var(--chart-4);
103
+ --color-chart-5: var(--chart-5);
104
+ --radius-sm: calc(var(--radius) - 4px);
105
+ --radius-md: calc(var(--radius) - 2px);
106
+ --radius-lg: var(--radius);
107
+ --radius-xl: calc(var(--radius) + 4px);
108
+ --color-sidebar: var(--sidebar);
109
+ --color-sidebar-foreground: var(--sidebar-foreground);
110
+ --color-sidebar-primary: var(--sidebar-primary);
111
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
112
+ --color-sidebar-accent: var(--sidebar-accent);
113
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
114
+ --color-sidebar-border: var(--sidebar-border);
115
+ --color-sidebar-ring: var(--sidebar-ring);
116
+ }
117
+
118
+ @layer base {
119
+ * {
120
+ @apply tw:border-border tw:outline-ring/50;
121
+ }
122
+ body {
123
+ @apply tw:bg-background tw:text-foreground;
124
+ }
125
+ }
@@ -0,0 +1,6 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+
4
+ export function cn(...inputs: any[]) {
5
+ return twMerge(clsx(inputs));
6
+ }