kofi-stack-template-generator 2.1.36 → 2.1.37
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.
- package/.turbo/turbo-build.log +6 -6
- package/dist/index.js +3 -2
- package/package.json +1 -1
- package/src/templates.generated.ts +5 -4
- package/templates/marketing/payload/src/blocks/Features.ts.hbs +2 -0
- package/templates/packages/ui/package.json.hbs +4 -0
- package/templates/packages/ui/src/styles.css.hbs +121 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
|
|
2
|
-
> kofi-stack-template-generator@2.1.
|
|
2
|
+
> kofi-stack-template-generator@2.1.37 build /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/template-generator
|
|
3
3
|
> pnpm run prebuild && tsup src/index.ts --format esm --dts
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> kofi-stack-template-generator@2.1.
|
|
6
|
+
> kofi-stack-template-generator@2.1.37 prebuild /Users/theodenanyoh/Documents/Krumalabs/create-kofi-stack-v2/packages/template-generator
|
|
7
7
|
> node scripts/generate-templates.js
|
|
8
8
|
|
|
9
9
|
Generating templates.generated.ts...
|
|
10
|
-
Generated templates.generated.ts with
|
|
10
|
+
Generated templates.generated.ts with 184 templates
|
|
11
11
|
CLI Building entry: src/index.ts
|
|
12
12
|
CLI Using tsconfig: tsconfig.json
|
|
13
13
|
CLI tsup v8.5.1
|
|
14
14
|
CLI Target: es2022
|
|
15
15
|
ESM Build start
|
|
16
|
-
ESM dist/index.js
|
|
17
|
-
ESM ⚡️ Build success in
|
|
16
|
+
ESM dist/index.js 256.99 KB
|
|
17
|
+
ESM ⚡️ Build success in 17ms
|
|
18
18
|
DTS Build start
|
|
19
|
-
DTS ⚡️ Build success in
|
|
19
|
+
DTS ⚡️ Build success in 465ms
|
|
20
20
|
DTS dist/index.d.ts 2.96 KB
|
package/dist/index.js
CHANGED
|
@@ -1599,7 +1599,7 @@ export default async function HomePage() {
|
|
|
1599
1599
|
"marketing/payload/src/blocks/CTA.ts.hbs": "import type { Block } from 'payload'\n\nexport const CTABlock: Block = {\n slug: 'cta',\n labels: { singular: 'CTA', plural: 'CTAs' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'description', type: 'textarea' },\n {\n name: 'style',\n type: 'select',\n options: [\n { label: 'Light', value: 'light' },\n { label: 'Dark', value: 'dark' },\n { label: 'Primary', value: 'primary' },\n ],\n defaultValue: 'dark',\n },\n {\n name: 'buttons',\n type: 'array',\n maxRows: 2,\n fields: [\n { name: 'label', type: 'text', required: true },\n { name: 'url', type: 'text', required: true },\n {\n name: 'variant',\n type: 'select',\n options: [\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'Outline', value: 'outline' },\n ],\n defaultValue: 'primary',\n },\n ],\n },\n ],\n}\n",
|
|
1600
1600
|
"marketing/payload/src/blocks/Content.ts.hbs": "import type { Block } from 'payload'\n\nexport const ContentBlock: Block = {\n slug: 'content',\n labels: { singular: 'Content', plural: 'Content' },\n fields: [\n { name: 'content', type: 'richText' },\n ],\n}\n",
|
|
1601
1601
|
"marketing/payload/src/blocks/FAQ.ts.hbs": "import type { Block } from 'payload'\n\nexport const FAQBlock: Block = {\n slug: 'faq',\n labels: { singular: 'FAQ', plural: 'FAQs' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'items',\n type: 'array',\n fields: [\n { name: 'question', type: 'text', required: true },\n { name: 'answer', type: 'textarea', required: true },\n ],\n },\n ],\n}\n",
|
|
1602
|
-
"marketing/payload/src/blocks/Features.ts.hbs": "import type { Block } from 'payload'\n\nexport const FeaturesBlock: Block = {\n slug: 'features',\n labels: { singular: 'Features', plural: 'Features' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'features',\n type: 'array',\n fields: [\n {\n name: 'icon',\n type: 'select',\n options: [\n { label: 'Zap', value: 'zap' },\n { label: 'Shield', value: 'shield' },\n { label: 'Globe', value: 'globe' },\n { label: 'Layers', value: 'layers' },\n { label: 'Settings', value: 'settings' },\n { label: 'Users', value: 'users' },\n { label: 'Lock', value: 'lock' },\n { label: 'Star', value: 'star' },\n ],\n },\n { name: 'title', type: 'text', required: true },\n { name: 'description', type: 'textarea' },\n ],\n },\n ],\n}\n",
|
|
1602
|
+
"marketing/payload/src/blocks/Features.ts.hbs": "import type { Block } from 'payload'\n\nexport const FeaturesBlock: Block = {\n slug: 'features',\n labels: { singular: 'Features', plural: 'Features' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'features',\n type: 'array',\n fields: [\n {\n name: 'icon',\n type: 'select',\n options: [\n { label: 'Zap', value: 'zap' },\n { label: 'Shield', value: 'shield' },\n { label: 'Globe', value: 'globe' },\n { label: 'Layers', value: 'layers' },\n { label: 'Layout', value: 'layout' },\n { label: 'Database', value: 'database' },\n { label: 'Settings', value: 'settings' },\n { label: 'Users', value: 'users' },\n { label: 'Lock', value: 'lock' },\n { label: 'Star', value: 'star' },\n ],\n },\n { name: 'title', type: 'text', required: true },\n { name: 'description', type: 'textarea' },\n ],\n },\n ],\n}\n",
|
|
1603
1603
|
"marketing/payload/src/blocks/Hero.ts.hbs": "import type { Block } from 'payload'\n\nexport const HeroBlock: Block = {\n slug: 'hero',\n labels: { singular: 'Hero', plural: 'Heroes' },\n fields: [\n {\n name: 'heading',\n type: 'text',\n required: true,\n },\n {\n name: 'subheading',\n type: 'textarea',\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n {\n name: 'buttons',\n type: 'array',\n maxRows: 2,\n fields: [\n { name: 'label', type: 'text', required: true },\n { name: 'url', type: 'text', required: true },\n {\n name: 'variant',\n type: 'select',\n options: [\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n ],\n defaultValue: 'primary',\n },\n ],\n },\n ],\n}\n",
|
|
1604
1604
|
"marketing/payload/src/blocks/LogoBanner.ts.hbs": "import type { Block } from 'payload'\n\nexport const LogoBannerBlock: Block = {\n slug: 'logoBanner',\n labels: { singular: 'Logo Banner', plural: 'Logo Banners' },\n fields: [\n { name: 'heading', type: 'text' },\n {\n name: 'logos',\n type: 'array',\n fields: [\n { name: 'name', type: 'text', required: true },\n { name: 'logo', type: 'upload', relationTo: 'media' },\n ],\n },\n ],\n}\n",
|
|
1605
1605
|
"marketing/payload/src/blocks/Pricing.ts.hbs": "import type { Block } from 'payload'\n\nexport const PricingBlock: Block = {\n slug: 'pricing',\n labels: { singular: 'Pricing', plural: 'Pricing' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'plans',\n type: 'array',\n fields: [\n { name: 'name', type: 'text', required: true },\n { name: 'price', type: 'text', required: true },\n { name: 'period', type: 'text', defaultValue: '/month' },\n { name: 'description', type: 'textarea' },\n { name: 'featured', type: 'checkbox', defaultValue: false },\n {\n name: 'features',\n type: 'array',\n fields: [\n { name: 'feature', type: 'text', required: true },\n { name: 'included', type: 'checkbox', defaultValue: true },\n ],\n },\n {\n name: 'cta',\n type: 'group',\n fields: [\n { name: 'label', type: 'text' },\n { name: 'url', type: 'text' },\n ],\n },\n ],\n },\n ],\n}\n",
|
|
@@ -2026,9 +2026,10 @@ export default function Index() {
|
|
|
2026
2026
|
"packages/config-typescript/base.json.hbs": '{\n "compilerOptions": {\n "target": "ES2020",\n "lib": ["dom", "dom.iterable", "esnext"],\n "allowJs": true,\n "skipLibCheck": true,\n "strict": true,\n "noEmit": true,\n "esModuleInterop": true,\n "module": "esnext",\n "moduleResolution": "bundler",\n "resolveJsonModule": true,\n "isolatedModules": true,\n "incremental": true\n },\n "exclude": ["node_modules"]\n}\n',
|
|
2027
2027
|
"packages/config-typescript/nextjs.json.hbs": '{\n "extends": "./base.json",\n "compilerOptions": {\n "jsx": "react-jsx",\n "plugins": [{ "name": "next" }]\n }\n}\n',
|
|
2028
2028
|
"packages/config-typescript/package.json.hbs": '{\n "name": "@repo/config-typescript",\n "version": "0.1.0",\n "private": true,\n "exports": {\n "./base.json": "./base.json",\n "./nextjs.json": "./nextjs.json"\n },\n "files": ["base.json", "nextjs.json"]\n}\n',
|
|
2029
|
-
"packages/ui/package.json.hbs": '{\n "name": "@repo/ui",\n "version": "0.1.0",\n "private": true,\n "main": "./src/index.ts",\n "types": "./src/index.ts",\n "exports": {\n ".": "./src/index.ts",\n "./components/*": "./src/components/*.tsx",\n "./lib/*": "./src/lib/*.ts"\n },\n "scripts": {\n "lint": "biome check .",\n "lint:fix": "biome check --write .",\n "typecheck": "tsc --noEmit"\n },\n "dependencies": {\n {{#if (eq shadcn.iconLibrary "hugeicons")}}"@hugeicons/react": "^0.3.0",{{/if}}\n {{#if (eq shadcn.iconLibrary "lucide")}}"lucide-react": "^0.469.0",{{/if}}\n {{#if (eq shadcn.iconLibrary "tabler")}}"@tabler/icons-react": "^3.31.0",{{/if}}\n {{#if (eq shadcn.iconLibrary "phosphor")}}"@phosphor-icons/react": "^2.1.7",{{/if}}\n "class-variance-authority": "^0.7.0",\n "clsx": "^2.1.0",\n "tailwind-merge": "^2.5.0"\n },\n "devDependencies": {\n "@repo/config-typescript": "workspace:*",\n "@types/react": "^19.0.0",\n "@types/react-dom": "^19.0.0",\n "react": "^19.0.0",\n "tailwindcss": "^4.0.0",\n "typescript": "^5.0.0"\n },\n "peerDependencies": {\n "react": "^19.0.0"\n }\n}\n',
|
|
2029
|
+
"packages/ui/package.json.hbs": '{\n "name": "@repo/ui",\n "version": "0.1.0",\n "private": true,\n "main": "./src/index.ts",\n "types": "./src/index.ts",\n "exports": {\n ".": "./src/index.ts",\n "./styles.css": {\n "style": "./src/styles.css",\n "default": "./src/styles.css"\n },\n "./components/*": "./src/components/*.tsx",\n "./lib/*": "./src/lib/*.ts"\n },\n "scripts": {\n "lint": "biome check .",\n "lint:fix": "biome check --write .",\n "typecheck": "tsc --noEmit"\n },\n "dependencies": {\n {{#if (eq shadcn.iconLibrary "hugeicons")}}"@hugeicons/react": "^0.3.0",{{/if}}\n {{#if (eq shadcn.iconLibrary "lucide")}}"lucide-react": "^0.469.0",{{/if}}\n {{#if (eq shadcn.iconLibrary "tabler")}}"@tabler/icons-react": "^3.31.0",{{/if}}\n {{#if (eq shadcn.iconLibrary "phosphor")}}"@phosphor-icons/react": "^2.1.7",{{/if}}\n "class-variance-authority": "^0.7.0",\n "clsx": "^2.1.0",\n "tailwind-merge": "^2.5.0"\n },\n "devDependencies": {\n "@repo/config-typescript": "workspace:*",\n "@types/react": "^19.0.0",\n "@types/react-dom": "^19.0.0",\n "react": "^19.0.0",\n "tailwindcss": "^4.0.0",\n "typescript": "^5.0.0"\n },\n "peerDependencies": {\n "react": "^19.0.0"\n }\n}\n',
|
|
2030
2030
|
"packages/ui/src/index.ts.hbs": "export { cn } from './lib/utils'\n// Export components as they are added\n// export * from './components/ui/button'\n",
|
|
2031
2031
|
"packages/ui/src/lib/utils.ts.hbs": "import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n",
|
|
2032
|
+
"packages/ui/src/styles.css.hbs": '@import "tailwindcss";\n\n@custom-variant dark (&:is(.dark *));\n\n@theme inline {\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --font-sans: var(--font-geist-sans);\n --font-mono: var(--font-geist-mono);\n --color-sidebar-ring: var(--sidebar-ring);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar: var(--sidebar);\n --color-chart-5: var(--chart-5);\n --color-chart-4: var(--chart-4);\n --color-chart-3: var(--chart-3);\n --color-chart-2: var(--chart-2);\n --color-chart-1: var(--chart-1);\n --color-ring: var(--ring);\n --color-input: var(--input);\n --color-border: var(--border);\n --color-destructive: var(--destructive);\n --color-accent-foreground: var(--accent-foreground);\n --color-accent: var(--accent);\n --color-muted-foreground: var(--muted-foreground);\n --color-muted: var(--muted);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-secondary: var(--secondary);\n --color-primary-foreground: var(--primary-foreground);\n --color-primary: var(--primary);\n --color-popover-foreground: var(--popover-foreground);\n --color-popover: var(--popover);\n --color-card-foreground: var(--card-foreground);\n --color-card: var(--card);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n}\n\n:root {\n --radius: 0.625rem;\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n.dark {\n --background: oklch(0.145 0 0);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.205 0 0);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.205 0 0);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.922 0 0);\n --primary-foreground: oklch(0.205 0 0);\n --secondary: oklch(0.269 0 0);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.269 0 0);\n --muted-foreground: oklch(0.708 0 0);\n --accent: oklch(0.269 0 0);\n --accent-foreground: oklch(0.985 0 0);\n --destructive: oklch(0.704 0.191 22.216);\n --border: oklch(1 0 0 / 10%);\n --input: oklch(1 0 0 / 15%);\n --ring: oklch(0.556 0 0);\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --sidebar: oklch(0.205 0 0);\n --sidebar-foreground: oklch(0.985 0 0);\n --sidebar-primary: oklch(0.488 0.243 264.376);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.269 0 0);\n --sidebar-accent-foreground: oklch(0.985 0 0);\n --sidebar-border: oklch(1 0 0 / 10%);\n --sidebar-ring: oklch(0.556 0 0);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n body {\n @apply bg-background text-foreground;\n }\n}\n',
|
|
2032
2033
|
"packages/ui/tsconfig.json.hbs": '{\n "compilerOptions": {\n "target": "ES2020",\n "lib": ["dom", "dom.iterable", "esnext"],\n "allowJs": true,\n "skipLibCheck": true,\n "strict": true,\n "noEmit": true,\n "esModuleInterop": true,\n "module": "esnext",\n "moduleResolution": "bundler",\n "resolveJsonModule": true,\n "isolatedModules": true,\n "jsx": "react-jsx",\n "incremental": true,\n "paths": {\n "@/*": ["./src/*"]\n }\n },\n "include": ["src/**/*"],\n "exclude": ["node_modules"]\n}\n',
|
|
2033
2034
|
"web/_env.local.hbs": "# Convex - These values are synced from packages/backend/.env.local after running convex dev\n# NEXT_PUBLIC_CONVEX_URL and NEXT_PUBLIC_CONVEX_SITE_URL are auto-synced by dev script\nNEXT_PUBLIC_CONVEX_URL=\nNEXT_PUBLIC_CONVEX_SITE_URL=\n\n# Site URL for auth (your frontend URL)\nNEXT_PUBLIC_SITE_URL=http://localhost:3000\n{{#if (eq integrations.analytics 'posthog')}}\n\n# PostHog\nNEXT_PUBLIC_POSTHOG_KEY=\nNEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com\n{{/if}}\n{{#if (eq integrations.payments 'stripe')}}\n\n# Stripe\nNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=\n{{/if}}\n",
|
|
2034
2035
|
"web/components.json.hbs": '{\n "$schema": "https://ui.shadcn.com/schema.json",\n "style": "new-york",\n "rsc": true,\n "tsx": true,\n "tailwind": {\n "config": "",\n "css": "src/app/globals.css",\n "baseColor": "{{shadcn.baseColor}}",\n "cssVariables": true,\n "prefix": ""\n },\n "aliases": {\n "components": "@/components",\n "utils": "@/lib/utils",\n "ui": "@/components/ui",\n "lib": "@/lib",\n "hooks": "@/hooks"\n },\n "iconLibrary": "{{shadcn.iconLibrary}}"\n}\n',
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Auto-generated file. Do not edit manually.
|
|
2
2
|
// Run 'pnpm prebuild' to regenerate.
|
|
3
|
-
// Generated: 2026-01-
|
|
4
|
-
// Template count:
|
|
3
|
+
// Generated: 2026-01-17T19:42:19.441Z
|
|
4
|
+
// Template count: 184
|
|
5
5
|
|
|
6
6
|
export const EMBEDDED_TEMPLATES: Record<string, string> = {
|
|
7
7
|
"admin/next.config.ts.hbs": "import type { NextConfig } from 'next'\n\nconst nextConfig: NextConfig = {\n transpilePackages: ['@repo/ui', '@repo/backend'],\n}\n\nexport default nextConfig\n",
|
|
@@ -81,7 +81,7 @@ export const EMBEDDED_TEMPLATES: Record<string, string> = {
|
|
|
81
81
|
"marketing/payload/src/blocks/CTA.ts.hbs": "import type { Block } from 'payload'\n\nexport const CTABlock: Block = {\n slug: 'cta',\n labels: { singular: 'CTA', plural: 'CTAs' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'description', type: 'textarea' },\n {\n name: 'style',\n type: 'select',\n options: [\n { label: 'Light', value: 'light' },\n { label: 'Dark', value: 'dark' },\n { label: 'Primary', value: 'primary' },\n ],\n defaultValue: 'dark',\n },\n {\n name: 'buttons',\n type: 'array',\n maxRows: 2,\n fields: [\n { name: 'label', type: 'text', required: true },\n { name: 'url', type: 'text', required: true },\n {\n name: 'variant',\n type: 'select',\n options: [\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n { label: 'Outline', value: 'outline' },\n ],\n defaultValue: 'primary',\n },\n ],\n },\n ],\n}\n",
|
|
82
82
|
"marketing/payload/src/blocks/Content.ts.hbs": "import type { Block } from 'payload'\n\nexport const ContentBlock: Block = {\n slug: 'content',\n labels: { singular: 'Content', plural: 'Content' },\n fields: [\n { name: 'content', type: 'richText' },\n ],\n}\n",
|
|
83
83
|
"marketing/payload/src/blocks/FAQ.ts.hbs": "import type { Block } from 'payload'\n\nexport const FAQBlock: Block = {\n slug: 'faq',\n labels: { singular: 'FAQ', plural: 'FAQs' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'items',\n type: 'array',\n fields: [\n { name: 'question', type: 'text', required: true },\n { name: 'answer', type: 'textarea', required: true },\n ],\n },\n ],\n}\n",
|
|
84
|
-
"marketing/payload/src/blocks/Features.ts.hbs": "import type { Block } from 'payload'\n\nexport const FeaturesBlock: Block = {\n slug: 'features',\n labels: { singular: 'Features', plural: 'Features' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'features',\n type: 'array',\n fields: [\n {\n name: 'icon',\n type: 'select',\n options: [\n { label: 'Zap', value: 'zap' },\n { label: 'Shield', value: 'shield' },\n { label: 'Globe', value: 'globe' },\n { label: 'Layers', value: 'layers' },\n { label: 'Settings', value: 'settings' },\n { label: 'Users', value: 'users' },\n { label: 'Lock', value: 'lock' },\n { label: 'Star', value: 'star' },\n ],\n },\n { name: 'title', type: 'text', required: true },\n { name: 'description', type: 'textarea' },\n ],\n },\n ],\n}\n",
|
|
84
|
+
"marketing/payload/src/blocks/Features.ts.hbs": "import type { Block } from 'payload'\n\nexport const FeaturesBlock: Block = {\n slug: 'features',\n labels: { singular: 'Features', plural: 'Features' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'features',\n type: 'array',\n fields: [\n {\n name: 'icon',\n type: 'select',\n options: [\n { label: 'Zap', value: 'zap' },\n { label: 'Shield', value: 'shield' },\n { label: 'Globe', value: 'globe' },\n { label: 'Layers', value: 'layers' },\n { label: 'Layout', value: 'layout' },\n { label: 'Database', value: 'database' },\n { label: 'Settings', value: 'settings' },\n { label: 'Users', value: 'users' },\n { label: 'Lock', value: 'lock' },\n { label: 'Star', value: 'star' },\n ],\n },\n { name: 'title', type: 'text', required: true },\n { name: 'description', type: 'textarea' },\n ],\n },\n ],\n}\n",
|
|
85
85
|
"marketing/payload/src/blocks/Hero.ts.hbs": "import type { Block } from 'payload'\n\nexport const HeroBlock: Block = {\n slug: 'hero',\n labels: { singular: 'Hero', plural: 'Heroes' },\n fields: [\n {\n name: 'heading',\n type: 'text',\n required: true,\n },\n {\n name: 'subheading',\n type: 'textarea',\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n {\n name: 'buttons',\n type: 'array',\n maxRows: 2,\n fields: [\n { name: 'label', type: 'text', required: true },\n { name: 'url', type: 'text', required: true },\n {\n name: 'variant',\n type: 'select',\n options: [\n { label: 'Primary', value: 'primary' },\n { label: 'Secondary', value: 'secondary' },\n ],\n defaultValue: 'primary',\n },\n ],\n },\n ],\n}\n",
|
|
86
86
|
"marketing/payload/src/blocks/LogoBanner.ts.hbs": "import type { Block } from 'payload'\n\nexport const LogoBannerBlock: Block = {\n slug: 'logoBanner',\n labels: { singular: 'Logo Banner', plural: 'Logo Banners' },\n fields: [\n { name: 'heading', type: 'text' },\n {\n name: 'logos',\n type: 'array',\n fields: [\n { name: 'name', type: 'text', required: true },\n { name: 'logo', type: 'upload', relationTo: 'media' },\n ],\n },\n ],\n}\n",
|
|
87
87
|
"marketing/payload/src/blocks/Pricing.ts.hbs": "import type { Block } from 'payload'\n\nexport const PricingBlock: Block = {\n slug: 'pricing',\n labels: { singular: 'Pricing', plural: 'Pricing' },\n fields: [\n { name: 'heading', type: 'text' },\n { name: 'subheading', type: 'textarea' },\n {\n name: 'plans',\n type: 'array',\n fields: [\n { name: 'name', type: 'text', required: true },\n { name: 'price', type: 'text', required: true },\n { name: 'period', type: 'text', defaultValue: '/month' },\n { name: 'description', type: 'textarea' },\n { name: 'featured', type: 'checkbox', defaultValue: false },\n {\n name: 'features',\n type: 'array',\n fields: [\n { name: 'feature', type: 'text', required: true },\n { name: 'included', type: 'checkbox', defaultValue: true },\n ],\n },\n {\n name: 'cta',\n type: 'group',\n fields: [\n { name: 'label', type: 'text' },\n { name: 'url', type: 'text' },\n ],\n },\n ],\n },\n ],\n}\n",
|
|
@@ -161,9 +161,10 @@ export const EMBEDDED_TEMPLATES: Record<string, string> = {
|
|
|
161
161
|
"packages/config-typescript/base.json.hbs": "{\n \"compilerOptions\": {\n \"target\": \"ES2020\",\n \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n \"allowJs\": true,\n \"skipLibCheck\": true,\n \"strict\": true,\n \"noEmit\": true,\n \"esModuleInterop\": true,\n \"module\": \"esnext\",\n \"moduleResolution\": \"bundler\",\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"incremental\": true\n },\n \"exclude\": [\"node_modules\"]\n}\n",
|
|
162
162
|
"packages/config-typescript/nextjs.json.hbs": "{\n \"extends\": \"./base.json\",\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"plugins\": [{ \"name\": \"next\" }]\n }\n}\n",
|
|
163
163
|
"packages/config-typescript/package.json.hbs": "{\n \"name\": \"@repo/config-typescript\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"exports\": {\n \"./base.json\": \"./base.json\",\n \"./nextjs.json\": \"./nextjs.json\"\n },\n \"files\": [\"base.json\", \"nextjs.json\"]\n}\n",
|
|
164
|
-
"packages/ui/package.json.hbs": "{\n \"name\": \"@repo/ui\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"main\": \"./src/index.ts\",\n \"types\": \"./src/index.ts\",\n \"exports\": {\n \".\": \"./src/index.ts\",\n \"./components/*\": \"./src/components/*.tsx\",\n \"./lib/*\": \"./src/lib/*.ts\"\n },\n \"scripts\": {\n \"lint\": \"biome check .\",\n \"lint:fix\": \"biome check --write .\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"dependencies\": {\n {{#if (eq shadcn.iconLibrary \"hugeicons\")}}\"@hugeicons/react\": \"^0.3.0\",{{/if}}\n {{#if (eq shadcn.iconLibrary \"lucide\")}}\"lucide-react\": \"^0.469.0\",{{/if}}\n {{#if (eq shadcn.iconLibrary \"tabler\")}}\"@tabler/icons-react\": \"^3.31.0\",{{/if}}\n {{#if (eq shadcn.iconLibrary \"phosphor\")}}\"@phosphor-icons/react\": \"^2.1.7\",{{/if}}\n \"class-variance-authority\": \"^0.7.0\",\n \"clsx\": \"^2.1.0\",\n \"tailwind-merge\": \"^2.5.0\"\n },\n \"devDependencies\": {\n \"@repo/config-typescript\": \"workspace:*\",\n \"@types/react\": \"^19.0.0\",\n \"@types/react-dom\": \"^19.0.0\",\n \"react\": \"^19.0.0\",\n \"tailwindcss\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\"\n },\n \"peerDependencies\": {\n \"react\": \"^19.0.0\"\n }\n}\n",
|
|
164
|
+
"packages/ui/package.json.hbs": "{\n \"name\": \"@repo/ui\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"main\": \"./src/index.ts\",\n \"types\": \"./src/index.ts\",\n \"exports\": {\n \".\": \"./src/index.ts\",\n \"./styles.css\": {\n \"style\": \"./src/styles.css\",\n \"default\": \"./src/styles.css\"\n },\n \"./components/*\": \"./src/components/*.tsx\",\n \"./lib/*\": \"./src/lib/*.ts\"\n },\n \"scripts\": {\n \"lint\": \"biome check .\",\n \"lint:fix\": \"biome check --write .\",\n \"typecheck\": \"tsc --noEmit\"\n },\n \"dependencies\": {\n {{#if (eq shadcn.iconLibrary \"hugeicons\")}}\"@hugeicons/react\": \"^0.3.0\",{{/if}}\n {{#if (eq shadcn.iconLibrary \"lucide\")}}\"lucide-react\": \"^0.469.0\",{{/if}}\n {{#if (eq shadcn.iconLibrary \"tabler\")}}\"@tabler/icons-react\": \"^3.31.0\",{{/if}}\n {{#if (eq shadcn.iconLibrary \"phosphor\")}}\"@phosphor-icons/react\": \"^2.1.7\",{{/if}}\n \"class-variance-authority\": \"^0.7.0\",\n \"clsx\": \"^2.1.0\",\n \"tailwind-merge\": \"^2.5.0\"\n },\n \"devDependencies\": {\n \"@repo/config-typescript\": \"workspace:*\",\n \"@types/react\": \"^19.0.0\",\n \"@types/react-dom\": \"^19.0.0\",\n \"react\": \"^19.0.0\",\n \"tailwindcss\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\"\n },\n \"peerDependencies\": {\n \"react\": \"^19.0.0\"\n }\n}\n",
|
|
165
165
|
"packages/ui/src/index.ts.hbs": "export { cn } from './lib/utils'\n// Export components as they are added\n// export * from './components/ui/button'\n",
|
|
166
166
|
"packages/ui/src/lib/utils.ts.hbs": "import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n",
|
|
167
|
+
"packages/ui/src/styles.css.hbs": "@import \"tailwindcss\";\n\n@custom-variant dark (&:is(.dark *));\n\n@theme inline {\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --font-sans: var(--font-geist-sans);\n --font-mono: var(--font-geist-mono);\n --color-sidebar-ring: var(--sidebar-ring);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar: var(--sidebar);\n --color-chart-5: var(--chart-5);\n --color-chart-4: var(--chart-4);\n --color-chart-3: var(--chart-3);\n --color-chart-2: var(--chart-2);\n --color-chart-1: var(--chart-1);\n --color-ring: var(--ring);\n --color-input: var(--input);\n --color-border: var(--border);\n --color-destructive: var(--destructive);\n --color-accent-foreground: var(--accent-foreground);\n --color-accent: var(--accent);\n --color-muted-foreground: var(--muted-foreground);\n --color-muted: var(--muted);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-secondary: var(--secondary);\n --color-primary-foreground: var(--primary-foreground);\n --color-primary: var(--primary);\n --color-popover-foreground: var(--popover-foreground);\n --color-popover: var(--popover);\n --color-card-foreground: var(--card-foreground);\n --color-card: var(--card);\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n}\n\n:root {\n --radius: 0.625rem;\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n.dark {\n --background: oklch(0.145 0 0);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.205 0 0);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.205 0 0);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.922 0 0);\n --primary-foreground: oklch(0.205 0 0);\n --secondary: oklch(0.269 0 0);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.269 0 0);\n --muted-foreground: oklch(0.708 0 0);\n --accent: oklch(0.269 0 0);\n --accent-foreground: oklch(0.985 0 0);\n --destructive: oklch(0.704 0.191 22.216);\n --border: oklch(1 0 0 / 10%);\n --input: oklch(1 0 0 / 15%);\n --ring: oklch(0.556 0 0);\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --sidebar: oklch(0.205 0 0);\n --sidebar-foreground: oklch(0.985 0 0);\n --sidebar-primary: oklch(0.488 0.243 264.376);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.269 0 0);\n --sidebar-accent-foreground: oklch(0.985 0 0);\n --sidebar-border: oklch(1 0 0 / 10%);\n --sidebar-ring: oklch(0.556 0 0);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n body {\n @apply bg-background text-foreground;\n }\n}\n",
|
|
167
168
|
"packages/ui/tsconfig.json.hbs": "{\n \"compilerOptions\": {\n \"target\": \"ES2020\",\n \"lib\": [\"dom\", \"dom.iterable\", \"esnext\"],\n \"allowJs\": true,\n \"skipLibCheck\": true,\n \"strict\": true,\n \"noEmit\": true,\n \"esModuleInterop\": true,\n \"module\": \"esnext\",\n \"moduleResolution\": \"bundler\",\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"jsx\": \"react-jsx\",\n \"incremental\": true,\n \"paths\": {\n \"@/*\": [\"./src/*\"]\n }\n },\n \"include\": [\"src/**/*\"],\n \"exclude\": [\"node_modules\"]\n}\n",
|
|
168
169
|
"web/_env.local.hbs": "# Convex - These values are synced from packages/backend/.env.local after running convex dev\n# NEXT_PUBLIC_CONVEX_URL and NEXT_PUBLIC_CONVEX_SITE_URL are auto-synced by dev script\nNEXT_PUBLIC_CONVEX_URL=\nNEXT_PUBLIC_CONVEX_SITE_URL=\n\n# Site URL for auth (your frontend URL)\nNEXT_PUBLIC_SITE_URL=http://localhost:3000\n{{#if (eq integrations.analytics 'posthog')}}\n\n# PostHog\nNEXT_PUBLIC_POSTHOG_KEY=\nNEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com\n{{/if}}\n{{#if (eq integrations.payments 'stripe')}}\n\n# Stripe\nNEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=\n{{/if}}\n",
|
|
169
170
|
"web/components.json.hbs": "{\n \"$schema\": \"https://ui.shadcn.com/schema.json\",\n \"style\": \"new-york\",\n \"rsc\": true,\n \"tsx\": true,\n \"tailwind\": {\n \"config\": \"\",\n \"css\": \"src/app/globals.css\",\n \"baseColor\": \"{{shadcn.baseColor}}\",\n \"cssVariables\": true,\n \"prefix\": \"\"\n },\n \"aliases\": {\n \"components\": \"@/components\",\n \"utils\": \"@/lib/utils\",\n \"ui\": \"@/components/ui\",\n \"lib\": \"@/lib\",\n \"hooks\": \"@/hooks\"\n },\n \"iconLibrary\": \"{{shadcn.iconLibrary}}\"\n}\n",
|
|
@@ -18,6 +18,8 @@ export const FeaturesBlock: Block = {
|
|
|
18
18
|
{ label: 'Shield', value: 'shield' },
|
|
19
19
|
{ label: 'Globe', value: 'globe' },
|
|
20
20
|
{ label: 'Layers', value: 'layers' },
|
|
21
|
+
{ label: 'Layout', value: 'layout' },
|
|
22
|
+
{ label: 'Database', value: 'database' },
|
|
21
23
|
{ label: 'Settings', value: 'settings' },
|
|
22
24
|
{ label: 'Users', value: 'users' },
|
|
23
25
|
{ label: 'Lock', value: 'lock' },
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@custom-variant dark (&:is(.dark *));
|
|
4
|
+
|
|
5
|
+
@theme inline {
|
|
6
|
+
--color-background: var(--background);
|
|
7
|
+
--color-foreground: var(--foreground);
|
|
8
|
+
--font-sans: var(--font-geist-sans);
|
|
9
|
+
--font-mono: var(--font-geist-mono);
|
|
10
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
11
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
12
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
13
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
14
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
15
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
16
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
17
|
+
--color-sidebar: var(--sidebar);
|
|
18
|
+
--color-chart-5: var(--chart-5);
|
|
19
|
+
--color-chart-4: var(--chart-4);
|
|
20
|
+
--color-chart-3: var(--chart-3);
|
|
21
|
+
--color-chart-2: var(--chart-2);
|
|
22
|
+
--color-chart-1: var(--chart-1);
|
|
23
|
+
--color-ring: var(--ring);
|
|
24
|
+
--color-input: var(--input);
|
|
25
|
+
--color-border: var(--border);
|
|
26
|
+
--color-destructive: var(--destructive);
|
|
27
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
28
|
+
--color-accent: var(--accent);
|
|
29
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
30
|
+
--color-muted: var(--muted);
|
|
31
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
32
|
+
--color-secondary: var(--secondary);
|
|
33
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
34
|
+
--color-primary: var(--primary);
|
|
35
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
36
|
+
--color-popover: var(--popover);
|
|
37
|
+
--color-card-foreground: var(--card-foreground);
|
|
38
|
+
--color-card: var(--card);
|
|
39
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
40
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
41
|
+
--radius-lg: var(--radius);
|
|
42
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:root {
|
|
46
|
+
--radius: 0.625rem;
|
|
47
|
+
--background: oklch(1 0 0);
|
|
48
|
+
--foreground: oklch(0.145 0 0);
|
|
49
|
+
--card: oklch(1 0 0);
|
|
50
|
+
--card-foreground: oklch(0.145 0 0);
|
|
51
|
+
--popover: oklch(1 0 0);
|
|
52
|
+
--popover-foreground: oklch(0.145 0 0);
|
|
53
|
+
--primary: oklch(0.205 0 0);
|
|
54
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
55
|
+
--secondary: oklch(0.97 0 0);
|
|
56
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
57
|
+
--muted: oklch(0.97 0 0);
|
|
58
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
59
|
+
--accent: oklch(0.97 0 0);
|
|
60
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
61
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
62
|
+
--border: oklch(0.922 0 0);
|
|
63
|
+
--input: oklch(0.922 0 0);
|
|
64
|
+
--ring: oklch(0.708 0 0);
|
|
65
|
+
--chart-1: oklch(0.646 0.222 41.116);
|
|
66
|
+
--chart-2: oklch(0.6 0.118 184.704);
|
|
67
|
+
--chart-3: oklch(0.398 0.07 227.392);
|
|
68
|
+
--chart-4: oklch(0.828 0.189 84.429);
|
|
69
|
+
--chart-5: oklch(0.769 0.188 70.08);
|
|
70
|
+
--sidebar: oklch(0.985 0 0);
|
|
71
|
+
--sidebar-foreground: oklch(0.145 0 0);
|
|
72
|
+
--sidebar-primary: oklch(0.205 0 0);
|
|
73
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
74
|
+
--sidebar-accent: oklch(0.97 0 0);
|
|
75
|
+
--sidebar-accent-foreground: oklch(0.205 0 0);
|
|
76
|
+
--sidebar-border: oklch(0.922 0 0);
|
|
77
|
+
--sidebar-ring: oklch(0.708 0 0);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.dark {
|
|
81
|
+
--background: oklch(0.145 0 0);
|
|
82
|
+
--foreground: oklch(0.985 0 0);
|
|
83
|
+
--card: oklch(0.205 0 0);
|
|
84
|
+
--card-foreground: oklch(0.985 0 0);
|
|
85
|
+
--popover: oklch(0.205 0 0);
|
|
86
|
+
--popover-foreground: oklch(0.985 0 0);
|
|
87
|
+
--primary: oklch(0.922 0 0);
|
|
88
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
89
|
+
--secondary: oklch(0.269 0 0);
|
|
90
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
91
|
+
--muted: oklch(0.269 0 0);
|
|
92
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
93
|
+
--accent: oklch(0.269 0 0);
|
|
94
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
95
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
96
|
+
--border: oklch(1 0 0 / 10%);
|
|
97
|
+
--input: oklch(1 0 0 / 15%);
|
|
98
|
+
--ring: oklch(0.556 0 0);
|
|
99
|
+
--chart-1: oklch(0.488 0.243 264.376);
|
|
100
|
+
--chart-2: oklch(0.696 0.17 162.48);
|
|
101
|
+
--chart-3: oklch(0.769 0.188 70.08);
|
|
102
|
+
--chart-4: oklch(0.627 0.265 303.9);
|
|
103
|
+
--chart-5: oklch(0.645 0.246 16.439);
|
|
104
|
+
--sidebar: oklch(0.205 0 0);
|
|
105
|
+
--sidebar-foreground: oklch(0.985 0 0);
|
|
106
|
+
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
107
|
+
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
108
|
+
--sidebar-accent: oklch(0.269 0 0);
|
|
109
|
+
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
110
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
111
|
+
--sidebar-ring: oklch(0.556 0 0);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@layer base {
|
|
115
|
+
* {
|
|
116
|
+
@apply border-border outline-ring/50;
|
|
117
|
+
}
|
|
118
|
+
body {
|
|
119
|
+
@apply bg-background text-foreground;
|
|
120
|
+
}
|
|
121
|
+
}
|