snapshot of https://github.com/shadcn-ui/ui.git (main, 2026-09-15; blobs > 131072B omitted)
This commit is contained in:
171
apps/v4/public/r/colors/gray.json
Normal file
171
apps/v4/public/r/colors/gray.json
Normal file
@@ -0,0 +1,171 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "white",
|
||||
"foreground": "gray-950",
|
||||
"card": "white",
|
||||
"card-foreground": "gray-950",
|
||||
"popover": "white",
|
||||
"popover-foreground": "gray-950",
|
||||
"primary": "gray-900",
|
||||
"primary-foreground": "gray-50",
|
||||
"secondary": "gray-100",
|
||||
"secondary-foreground": "gray-900",
|
||||
"muted": "gray-100",
|
||||
"muted-foreground": "gray-500",
|
||||
"accent": "gray-100",
|
||||
"accent-foreground": "gray-900",
|
||||
"destructive": "red-500",
|
||||
"destructive-foreground": "gray-50",
|
||||
"border": "gray-200",
|
||||
"input": "gray-200",
|
||||
"ring": "gray-950"
|
||||
},
|
||||
"dark": {
|
||||
"background": "gray-950",
|
||||
"foreground": "gray-50",
|
||||
"card": "gray-950",
|
||||
"card-foreground": "gray-50",
|
||||
"popover": "gray-950",
|
||||
"popover-foreground": "gray-50",
|
||||
"primary": "gray-50",
|
||||
"primary-foreground": "gray-900",
|
||||
"secondary": "gray-800",
|
||||
"secondary-foreground": "gray-50",
|
||||
"muted": "gray-800",
|
||||
"muted-foreground": "gray-400",
|
||||
"accent": "gray-800",
|
||||
"accent-foreground": "gray-50",
|
||||
"destructive": "red-900",
|
||||
"destructive-foreground": "gray-50",
|
||||
"border": "gray-800",
|
||||
"input": "gray-800",
|
||||
"ring": "gray-300"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "0 0% 100%",
|
||||
"foreground": "224 71.4% 4.1%",
|
||||
"card": "0 0% 100%",
|
||||
"card-foreground": "224 71.4% 4.1%",
|
||||
"popover": "0 0% 100%",
|
||||
"popover-foreground": "224 71.4% 4.1%",
|
||||
"primary": "220.9 39.3% 11%",
|
||||
"primary-foreground": "210 20% 98%",
|
||||
"secondary": "220 14.3% 95.9%",
|
||||
"secondary-foreground": "220.9 39.3% 11%",
|
||||
"muted": "220 14.3% 95.9%",
|
||||
"muted-foreground": "220 8.9% 46.1%",
|
||||
"accent": "220 14.3% 95.9%",
|
||||
"accent-foreground": "220.9 39.3% 11%",
|
||||
"destructive": "0 84.2% 60.2%",
|
||||
"destructive-foreground": "210 20% 98%",
|
||||
"border": "220 13% 91%",
|
||||
"input": "220 13% 91%",
|
||||
"ring": "224 71.4% 4.1%",
|
||||
"chart-1": "12 76% 61%",
|
||||
"chart-2": "173 58% 39%",
|
||||
"chart-3": "197 37% 24%",
|
||||
"chart-4": "43 74% 66%",
|
||||
"chart-5": "27 87% 67%"
|
||||
},
|
||||
"dark": {
|
||||
"background": "224 71.4% 4.1%",
|
||||
"foreground": "210 20% 98%",
|
||||
"card": "224 71.4% 4.1%",
|
||||
"card-foreground": "210 20% 98%",
|
||||
"popover": "224 71.4% 4.1%",
|
||||
"popover-foreground": "210 20% 98%",
|
||||
"primary": "210 20% 98%",
|
||||
"primary-foreground": "220.9 39.3% 11%",
|
||||
"secondary": "215 27.9% 16.9%",
|
||||
"secondary-foreground": "210 20% 98%",
|
||||
"muted": "215 27.9% 16.9%",
|
||||
"muted-foreground": "217.9 10.6% 64.9%",
|
||||
"accent": "215 27.9% 16.9%",
|
||||
"accent-foreground": "210 20% 98%",
|
||||
"destructive": "0 62.8% 30.6%",
|
||||
"destructive-foreground": "210 20% 98%",
|
||||
"border": "215 27.9% 16.9%",
|
||||
"input": "215 27.9% 16.9%",
|
||||
"ring": "216 12.2% 83.9%",
|
||||
"chart-1": "220 70% 50%",
|
||||
"chart-2": "160 60% 45%",
|
||||
"chart-3": "30 80% 55%",
|
||||
"chart-4": "280 65% 60%",
|
||||
"chart-5": "340 75% 55%"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.13 0.028 261.692)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.13 0.028 261.692)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.13 0.028 261.692)",
|
||||
"primary": "oklch(0.21 0.034 264.665)",
|
||||
"primary-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"secondary": "oklch(0.967 0.003 264.542)",
|
||||
"secondary-foreground": "oklch(0.21 0.034 264.665)",
|
||||
"muted": "oklch(0.967 0.003 264.542)",
|
||||
"muted-foreground": "oklch(0.551 0.027 264.364)",
|
||||
"accent": "oklch(0.967 0.003 264.542)",
|
||||
"accent-foreground": "oklch(0.21 0.034 264.665)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.928 0.006 264.531)",
|
||||
"input": "oklch(0.928 0.006 264.531)",
|
||||
"ring": "oklch(0.707 0.022 261.325)",
|
||||
"chart-1": "oklch(0.646 0.222 41.116)",
|
||||
"chart-2": "oklch(0.6 0.118 184.704)",
|
||||
"chart-3": "oklch(0.398 0.07 227.392)",
|
||||
"chart-4": "oklch(0.828 0.189 84.429)",
|
||||
"chart-5": "oklch(0.769 0.188 70.08)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0.002 247.839)",
|
||||
"sidebar-foreground": "oklch(0.13 0.028 261.692)",
|
||||
"sidebar-primary": "oklch(0.21 0.034 264.665)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"sidebar-accent": "oklch(0.967 0.003 264.542)",
|
||||
"sidebar-accent-foreground": "oklch(0.21 0.034 264.665)",
|
||||
"sidebar-border": "oklch(0.928 0.006 264.531)",
|
||||
"sidebar-ring": "oklch(0.707 0.022 261.325)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.13 0.028 261.692)",
|
||||
"foreground": "oklch(0.985 0.002 247.839)",
|
||||
"card": "oklch(0.21 0.034 264.665)",
|
||||
"card-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"popover": "oklch(0.21 0.034 264.665)",
|
||||
"popover-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"primary": "oklch(0.928 0.006 264.531)",
|
||||
"primary-foreground": "oklch(0.21 0.034 264.665)",
|
||||
"secondary": "oklch(0.278 0.033 256.848)",
|
||||
"secondary-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"muted": "oklch(0.278 0.033 256.848)",
|
||||
"muted-foreground": "oklch(0.707 0.022 261.325)",
|
||||
"accent": "oklch(0.278 0.033 256.848)",
|
||||
"accent-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.551 0.027 264.364)",
|
||||
"chart-1": "oklch(0.488 0.243 264.376)",
|
||||
"chart-2": "oklch(0.696 0.17 162.48)",
|
||||
"chart-3": "oklch(0.769 0.188 70.08)",
|
||||
"chart-4": "oklch(0.627 0.265 303.9)",
|
||||
"chart-5": "oklch(0.645 0.246 16.439)",
|
||||
"sidebar": "oklch(0.21 0.034 264.665)",
|
||||
"sidebar-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"sidebar-accent": "oklch(0.278 0.033 256.848)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0.002 247.839)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.551 0.027 264.364)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 224 71.4% 4.1%;\n --card: 0 0% 100%;\n --card-foreground: 224 71.4% 4.1%;\n --popover: 0 0% 100%;\n --popover-foreground: 224 71.4% 4.1%;\n --primary: 220.9 39.3% 11%;\n --primary-foreground: 210 20% 98%;\n --secondary: 220 14.3% 95.9%;\n --secondary-foreground: 220.9 39.3% 11%;\n --muted: 220 14.3% 95.9%;\n --muted-foreground: 220 8.9% 46.1%;\n --accent: 220 14.3% 95.9%;\n --accent-foreground: 220.9 39.3% 11%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 20% 98%;\n --border: 220 13% 91%;\n --input: 220 13% 91%;\n --ring: 224 71.4% 4.1%;\n --radius: 0.5rem;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n }\n\n .dark {\n --background: 224 71.4% 4.1%;\n --foreground: 210 20% 98%;\n --card: 224 71.4% 4.1%;\n --card-foreground: 210 20% 98%;\n --popover: 224 71.4% 4.1%;\n --popover-foreground: 210 20% 98%;\n --primary: 210 20% 98%;\n --primary-foreground: 220.9 39.3% 11%;\n --secondary: 215 27.9% 16.9%;\n --secondary-foreground: 210 20% 98%;\n --muted: 215 27.9% 16.9%;\n --muted-foreground: 217.9 10.6% 64.9%;\n --accent: 215 27.9% 16.9%;\n --accent-foreground: 210 20% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 20% 98%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --ring: 216 12.2% 83.9%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
2243
apps/v4/public/r/colors/index.json
Normal file
2243
apps/v4/public/r/colors/index.json
Normal file
File diff suppressed because it is too large
Load Diff
211
apps/v4/public/r/colors/mauve.json
Normal file
211
apps/v4/public/r/colors/mauve.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.145 0.008 326)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.145 0.008 326)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.145 0.008 326)",
|
||||
"primary": "oklch(0.212 0.019 322.12)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.96 0.003 325.6)",
|
||||
"secondary-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"muted": "oklch(0.96 0.003 325.6)",
|
||||
"muted-foreground": "oklch(0.542 0.034 322.5)",
|
||||
"accent": "oklch(0.96 0.003 325.6)",
|
||||
"accent-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0.005 325.62)",
|
||||
"input": "oklch(0.922 0.005 325.62)",
|
||||
"ring": "oklch(0.711 0.019 323.02)",
|
||||
"chart-1": "oklch(0.865 0.012 325.68)",
|
||||
"chart-2": "oklch(0.542 0.034 322.5)",
|
||||
"chart-3": "oklch(0.435 0.029 321.78)",
|
||||
"chart-4": "oklch(0.364 0.029 323.89)",
|
||||
"chart-5": "oklch(0.263 0.024 320.12)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.145 0.008 326)",
|
||||
"sidebar-primary": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.96 0.003 325.6)",
|
||||
"sidebar-accent-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-border": "oklch(0.922 0.005 325.62)",
|
||||
"sidebar-ring": "oklch(0.711 0.019 323.02)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.145 0.008 326)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.212 0.019 322.12)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.212 0.019 322.12)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.922 0.005 325.62)",
|
||||
"primary-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"secondary": "oklch(0.263 0.024 320.12)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.263 0.024 320.12)",
|
||||
"muted-foreground": "oklch(0.711 0.019 323.02)",
|
||||
"accent": "oklch(0.263 0.024 320.12)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.542 0.034 322.5)",
|
||||
"chart-1": "oklch(0.865 0.012 325.68)",
|
||||
"chart-2": "oklch(0.542 0.034 322.5)",
|
||||
"chart-3": "oklch(0.435 0.029 321.78)",
|
||||
"chart-4": "oklch(0.364 0.029 323.89)",
|
||||
"chart-5": "oklch(0.263 0.024 320.12)",
|
||||
"sidebar": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.263 0.024 320.12)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.542 0.034 322.5)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.145 0.008 326)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.145 0.008 326)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.145 0.008 326)",
|
||||
"primary": "oklch(0.212 0.019 322.12)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.96 0.003 325.6)",
|
||||
"secondary-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"muted": "oklch(0.96 0.003 325.6)",
|
||||
"muted-foreground": "oklch(0.542 0.034 322.5)",
|
||||
"accent": "oklch(0.96 0.003 325.6)",
|
||||
"accent-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0.005 325.62)",
|
||||
"input": "oklch(0.922 0.005 325.62)",
|
||||
"ring": "oklch(0.711 0.019 323.02)",
|
||||
"chart-1": "oklch(0.865 0.012 325.68)",
|
||||
"chart-2": "oklch(0.542 0.034 322.5)",
|
||||
"chart-3": "oklch(0.435 0.029 321.78)",
|
||||
"chart-4": "oklch(0.364 0.029 323.89)",
|
||||
"chart-5": "oklch(0.263 0.024 320.12)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.145 0.008 326)",
|
||||
"sidebar-primary": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.96 0.003 325.6)",
|
||||
"sidebar-accent-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-border": "oklch(0.922 0.005 325.62)",
|
||||
"sidebar-ring": "oklch(0.711 0.019 323.02)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.145 0.008 326)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.212 0.019 322.12)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.212 0.019 322.12)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.922 0.005 325.62)",
|
||||
"primary-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"secondary": "oklch(0.263 0.024 320.12)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.263 0.024 320.12)",
|
||||
"muted-foreground": "oklch(0.711 0.019 323.02)",
|
||||
"accent": "oklch(0.263 0.024 320.12)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.542 0.034 322.5)",
|
||||
"chart-1": "oklch(0.865 0.012 325.68)",
|
||||
"chart-2": "oklch(0.542 0.034 322.5)",
|
||||
"chart-3": "oklch(0.435 0.029 321.78)",
|
||||
"chart-4": "oklch(0.364 0.029 323.89)",
|
||||
"chart-5": "oklch(0.263 0.024 320.12)",
|
||||
"sidebar": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.263 0.024 320.12)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.542 0.034 322.5)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.145 0.008 326)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.145 0.008 326)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.145 0.008 326)",
|
||||
"primary": "oklch(0.212 0.019 322.12)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.96 0.003 325.6)",
|
||||
"secondary-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"muted": "oklch(0.96 0.003 325.6)",
|
||||
"muted-foreground": "oklch(0.542 0.034 322.5)",
|
||||
"accent": "oklch(0.96 0.003 325.6)",
|
||||
"accent-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0.005 325.62)",
|
||||
"input": "oklch(0.922 0.005 325.62)",
|
||||
"ring": "oklch(0.711 0.019 323.02)",
|
||||
"chart-1": "oklch(0.865 0.012 325.68)",
|
||||
"chart-2": "oklch(0.542 0.034 322.5)",
|
||||
"chart-3": "oklch(0.435 0.029 321.78)",
|
||||
"chart-4": "oklch(0.364 0.029 323.89)",
|
||||
"chart-5": "oklch(0.263 0.024 320.12)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.145 0.008 326)",
|
||||
"sidebar-primary": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.96 0.003 325.6)",
|
||||
"sidebar-accent-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-border": "oklch(0.922 0.005 325.62)",
|
||||
"sidebar-ring": "oklch(0.711 0.019 323.02)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.145 0.008 326)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.212 0.019 322.12)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.212 0.019 322.12)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.922 0.005 325.62)",
|
||||
"primary-foreground": "oklch(0.212 0.019 322.12)",
|
||||
"secondary": "oklch(0.263 0.024 320.12)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.263 0.024 320.12)",
|
||||
"muted-foreground": "oklch(0.711 0.019 323.02)",
|
||||
"accent": "oklch(0.263 0.024 320.12)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.542 0.034 322.5)",
|
||||
"chart-1": "oklch(0.865 0.012 325.68)",
|
||||
"chart-2": "oklch(0.542 0.034 322.5)",
|
||||
"chart-3": "oklch(0.435 0.029 321.78)",
|
||||
"chart-4": "oklch(0.364 0.029 323.89)",
|
||||
"chart-5": "oklch(0.263 0.024 320.12)",
|
||||
"sidebar": "oklch(0.212 0.019 322.12)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.263 0.024 320.12)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.542 0.034 322.5)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0.008 326);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0.008 326);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0.008 326);\n --primary: oklch(0.212 0.019 322.12);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.96 0.003 325.6);\n --secondary-foreground: oklch(0.212 0.019 322.12);\n --muted: oklch(0.96 0.003 325.6);\n --muted-foreground: oklch(0.542 0.034 322.5);\n --accent: oklch(0.96 0.003 325.6);\n --accent-foreground: oklch(0.212 0.019 322.12);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0.005 325.62);\n --input: oklch(0.922 0.005 325.62);\n --ring: oklch(0.711 0.019 323.02);\n --chart-1: oklch(0.865 0.012 325.68);\n --chart-2: oklch(0.542 0.034 322.5);\n --chart-3: oklch(0.435 0.029 321.78);\n --chart-4: oklch(0.364 0.029 323.89);\n --chart-5: oklch(0.263 0.024 320.12);\n --radius: 0.625rem;\n }\n\n .dark {\n --background: oklch(0.145 0.008 326);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.212 0.019 322.12);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.212 0.019 322.12);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.922 0.005 325.62);\n --primary-foreground: oklch(0.212 0.019 322.12);\n --secondary: oklch(0.263 0.024 320.12);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.263 0.024 320.12);\n --muted-foreground: oklch(0.711 0.019 323.02);\n --accent: oklch(0.263 0.024 320.12);\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.542 0.034 322.5);\n --chart-1: oklch(0.865 0.012 325.68);\n --chart-2: oklch(0.542 0.034 322.5);\n --chart-3: oklch(0.435 0.029 321.78);\n --chart-4: oklch(0.364 0.029 323.89);\n --chart-5: oklch(0.263 0.024 320.12);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
211
apps/v4/public/r/colors/mist.json
Normal file
211
apps/v4/public/r/colors/mist.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.148 0.004 228.8)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"primary": "oklch(0.218 0.008 223.9)",
|
||||
"primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"secondary": "oklch(0.963 0.002 197.1)",
|
||||
"secondary-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"muted": "oklch(0.963 0.002 197.1)",
|
||||
"muted-foreground": "oklch(0.56 0.021 213.5)",
|
||||
"accent": "oklch(0.963 0.002 197.1)",
|
||||
"accent-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.925 0.005 214.3)",
|
||||
"input": "oklch(0.925 0.005 214.3)",
|
||||
"ring": "oklch(0.723 0.014 214.4)",
|
||||
"chart-1": "oklch(0.872 0.007 219.6)",
|
||||
"chart-2": "oklch(0.56 0.021 213.5)",
|
||||
"chart-3": "oklch(0.45 0.017 213.2)",
|
||||
"chart-4": "oklch(0.378 0.015 216)",
|
||||
"chart-5": "oklch(0.275 0.011 216.9)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"sidebar-primary": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-accent": "oklch(0.963 0.002 197.1)",
|
||||
"sidebar-accent-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-border": "oklch(0.925 0.005 214.3)",
|
||||
"sidebar-ring": "oklch(0.723 0.014 214.4)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.148 0.004 228.8)",
|
||||
"foreground": "oklch(0.987 0.002 197.1)",
|
||||
"card": "oklch(0.218 0.008 223.9)",
|
||||
"card-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"popover": "oklch(0.218 0.008 223.9)",
|
||||
"popover-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"primary": "oklch(0.925 0.005 214.3)",
|
||||
"primary-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"secondary": "oklch(0.275 0.011 216.9)",
|
||||
"secondary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"muted": "oklch(0.275 0.011 216.9)",
|
||||
"muted-foreground": "oklch(0.723 0.014 214.4)",
|
||||
"accent": "oklch(0.275 0.011 216.9)",
|
||||
"accent-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.56 0.021 213.5)",
|
||||
"chart-1": "oklch(0.872 0.007 219.6)",
|
||||
"chart-2": "oklch(0.56 0.021 213.5)",
|
||||
"chart-3": "oklch(0.45 0.017 213.2)",
|
||||
"chart-4": "oklch(0.378 0.015 216)",
|
||||
"chart-5": "oklch(0.275 0.011 216.9)",
|
||||
"sidebar": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-accent": "oklch(0.275 0.011 216.9)",
|
||||
"sidebar-accent-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.56 0.021 213.5)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.148 0.004 228.8)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"primary": "oklch(0.218 0.008 223.9)",
|
||||
"primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"secondary": "oklch(0.963 0.002 197.1)",
|
||||
"secondary-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"muted": "oklch(0.963 0.002 197.1)",
|
||||
"muted-foreground": "oklch(0.56 0.021 213.5)",
|
||||
"accent": "oklch(0.963 0.002 197.1)",
|
||||
"accent-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.925 0.005 214.3)",
|
||||
"input": "oklch(0.925 0.005 214.3)",
|
||||
"ring": "oklch(0.723 0.014 214.4)",
|
||||
"chart-1": "oklch(0.872 0.007 219.6)",
|
||||
"chart-2": "oklch(0.56 0.021 213.5)",
|
||||
"chart-3": "oklch(0.45 0.017 213.2)",
|
||||
"chart-4": "oklch(0.378 0.015 216)",
|
||||
"chart-5": "oklch(0.275 0.011 216.9)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"sidebar-primary": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-accent": "oklch(0.963 0.002 197.1)",
|
||||
"sidebar-accent-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-border": "oklch(0.925 0.005 214.3)",
|
||||
"sidebar-ring": "oklch(0.723 0.014 214.4)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.148 0.004 228.8)",
|
||||
"foreground": "oklch(0.987 0.002 197.1)",
|
||||
"card": "oklch(0.218 0.008 223.9)",
|
||||
"card-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"popover": "oklch(0.218 0.008 223.9)",
|
||||
"popover-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"primary": "oklch(0.925 0.005 214.3)",
|
||||
"primary-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"secondary": "oklch(0.275 0.011 216.9)",
|
||||
"secondary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"muted": "oklch(0.275 0.011 216.9)",
|
||||
"muted-foreground": "oklch(0.723 0.014 214.4)",
|
||||
"accent": "oklch(0.275 0.011 216.9)",
|
||||
"accent-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.56 0.021 213.5)",
|
||||
"chart-1": "oklch(0.872 0.007 219.6)",
|
||||
"chart-2": "oklch(0.56 0.021 213.5)",
|
||||
"chart-3": "oklch(0.45 0.017 213.2)",
|
||||
"chart-4": "oklch(0.378 0.015 216)",
|
||||
"chart-5": "oklch(0.275 0.011 216.9)",
|
||||
"sidebar": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-accent": "oklch(0.275 0.011 216.9)",
|
||||
"sidebar-accent-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.56 0.021 213.5)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.148 0.004 228.8)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"primary": "oklch(0.218 0.008 223.9)",
|
||||
"primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"secondary": "oklch(0.963 0.002 197.1)",
|
||||
"secondary-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"muted": "oklch(0.963 0.002 197.1)",
|
||||
"muted-foreground": "oklch(0.56 0.021 213.5)",
|
||||
"accent": "oklch(0.963 0.002 197.1)",
|
||||
"accent-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.925 0.005 214.3)",
|
||||
"input": "oklch(0.925 0.005 214.3)",
|
||||
"ring": "oklch(0.723 0.014 214.4)",
|
||||
"chart-1": "oklch(0.872 0.007 219.6)",
|
||||
"chart-2": "oklch(0.56 0.021 213.5)",
|
||||
"chart-3": "oklch(0.45 0.017 213.2)",
|
||||
"chart-4": "oklch(0.378 0.015 216)",
|
||||
"chart-5": "oklch(0.275 0.011 216.9)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-foreground": "oklch(0.148 0.004 228.8)",
|
||||
"sidebar-primary": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-accent": "oklch(0.963 0.002 197.1)",
|
||||
"sidebar-accent-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-border": "oklch(0.925 0.005 214.3)",
|
||||
"sidebar-ring": "oklch(0.723 0.014 214.4)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.148 0.004 228.8)",
|
||||
"foreground": "oklch(0.987 0.002 197.1)",
|
||||
"card": "oklch(0.218 0.008 223.9)",
|
||||
"card-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"popover": "oklch(0.218 0.008 223.9)",
|
||||
"popover-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"primary": "oklch(0.925 0.005 214.3)",
|
||||
"primary-foreground": "oklch(0.218 0.008 223.9)",
|
||||
"secondary": "oklch(0.275 0.011 216.9)",
|
||||
"secondary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"muted": "oklch(0.275 0.011 216.9)",
|
||||
"muted-foreground": "oklch(0.723 0.014 214.4)",
|
||||
"accent": "oklch(0.275 0.011 216.9)",
|
||||
"accent-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.56 0.021 213.5)",
|
||||
"chart-1": "oklch(0.872 0.007 219.6)",
|
||||
"chart-2": "oklch(0.56 0.021 213.5)",
|
||||
"chart-3": "oklch(0.45 0.017 213.2)",
|
||||
"chart-4": "oklch(0.378 0.015 216)",
|
||||
"chart-5": "oklch(0.275 0.011 216.9)",
|
||||
"sidebar": "oklch(0.218 0.008 223.9)",
|
||||
"sidebar-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-accent": "oklch(0.275 0.011 216.9)",
|
||||
"sidebar-accent-foreground": "oklch(0.987 0.002 197.1)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.56 0.021 213.5)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.148 0.004 228.8);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.148 0.004 228.8);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.148 0.004 228.8);\n --primary: oklch(0.218 0.008 223.9);\n --primary-foreground: oklch(0.987 0.002 197.1);\n --secondary: oklch(0.963 0.002 197.1);\n --secondary-foreground: oklch(0.218 0.008 223.9);\n --muted: oklch(0.963 0.002 197.1);\n --muted-foreground: oklch(0.56 0.021 213.5);\n --accent: oklch(0.963 0.002 197.1);\n --accent-foreground: oklch(0.218 0.008 223.9);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.925 0.005 214.3);\n --input: oklch(0.925 0.005 214.3);\n --ring: oklch(0.723 0.014 214.4);\n --chart-1: oklch(0.872 0.007 219.6);\n --chart-2: oklch(0.56 0.021 213.5);\n --chart-3: oklch(0.45 0.017 213.2);\n --chart-4: oklch(0.378 0.015 216);\n --chart-5: oklch(0.275 0.011 216.9);\n --radius: 0.625rem;\n }\n\n .dark {\n --background: oklch(0.148 0.004 228.8);\n --foreground: oklch(0.987 0.002 197.1);\n --card: oklch(0.218 0.008 223.9);\n --card-foreground: oklch(0.987 0.002 197.1);\n --popover: oklch(0.218 0.008 223.9);\n --popover-foreground: oklch(0.987 0.002 197.1);\n --primary: oklch(0.925 0.005 214.3);\n --primary-foreground: oklch(0.218 0.008 223.9);\n --secondary: oklch(0.275 0.011 216.9);\n --secondary-foreground: oklch(0.987 0.002 197.1);\n --muted: oklch(0.275 0.011 216.9);\n --muted-foreground: oklch(0.723 0.014 214.4);\n --accent: oklch(0.275 0.011 216.9);\n --accent-foreground: oklch(0.987 0.002 197.1);\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.56 0.021 213.5);\n --chart-1: oklch(0.872 0.007 219.6);\n --chart-2: oklch(0.56 0.021 213.5);\n --chart-3: oklch(0.45 0.017 213.2);\n --chart-4: oklch(0.378 0.015 216);\n --chart-5: oklch(0.275 0.011 216.9);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
211
apps/v4/public/r/colors/neutral.json
Normal file
211
apps/v4/public/r/colors/neutral.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.145 0 0)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.145 0 0)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.145 0 0)",
|
||||
"primary": "oklch(0.205 0 0)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.97 0 0)",
|
||||
"secondary-foreground": "oklch(0.205 0 0)",
|
||||
"muted": "oklch(0.97 0 0)",
|
||||
"muted-foreground": "oklch(0.556 0 0)",
|
||||
"accent": "oklch(0.97 0 0)",
|
||||
"accent-foreground": "oklch(0.205 0 0)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0 0)",
|
||||
"input": "oklch(0.922 0 0)",
|
||||
"ring": "oklch(0.708 0 0)",
|
||||
"chart-1": "oklch(0.87 0 0)",
|
||||
"chart-2": "oklch(0.556 0 0)",
|
||||
"chart-3": "oklch(0.439 0 0)",
|
||||
"chart-4": "oklch(0.371 0 0)",
|
||||
"chart-5": "oklch(0.269 0 0)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.145 0 0)",
|
||||
"sidebar-primary": "oklch(0.205 0 0)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.97 0 0)",
|
||||
"sidebar-accent-foreground": "oklch(0.205 0 0)",
|
||||
"sidebar-border": "oklch(0.922 0 0)",
|
||||
"sidebar-ring": "oklch(0.708 0 0)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.145 0 0)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.205 0 0)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.205 0 0)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.922 0 0)",
|
||||
"primary-foreground": "oklch(0.205 0 0)",
|
||||
"secondary": "oklch(0.269 0 0)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.269 0 0)",
|
||||
"muted-foreground": "oklch(0.708 0 0)",
|
||||
"accent": "oklch(0.269 0 0)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.556 0 0)",
|
||||
"chart-1": "oklch(0.87 0 0)",
|
||||
"chart-2": "oklch(0.556 0 0)",
|
||||
"chart-3": "oklch(0.439 0 0)",
|
||||
"chart-4": "oklch(0.371 0 0)",
|
||||
"chart-5": "oklch(0.269 0 0)",
|
||||
"sidebar": "oklch(0.205 0 0)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.269 0 0)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.556 0 0)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.145 0 0)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.145 0 0)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.145 0 0)",
|
||||
"primary": "oklch(0.205 0 0)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.97 0 0)",
|
||||
"secondary-foreground": "oklch(0.205 0 0)",
|
||||
"muted": "oklch(0.97 0 0)",
|
||||
"muted-foreground": "oklch(0.556 0 0)",
|
||||
"accent": "oklch(0.97 0 0)",
|
||||
"accent-foreground": "oklch(0.205 0 0)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0 0)",
|
||||
"input": "oklch(0.922 0 0)",
|
||||
"ring": "oklch(0.708 0 0)",
|
||||
"chart-1": "oklch(0.87 0 0)",
|
||||
"chart-2": "oklch(0.556 0 0)",
|
||||
"chart-3": "oklch(0.439 0 0)",
|
||||
"chart-4": "oklch(0.371 0 0)",
|
||||
"chart-5": "oklch(0.269 0 0)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.145 0 0)",
|
||||
"sidebar-primary": "oklch(0.205 0 0)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.97 0 0)",
|
||||
"sidebar-accent-foreground": "oklch(0.205 0 0)",
|
||||
"sidebar-border": "oklch(0.922 0 0)",
|
||||
"sidebar-ring": "oklch(0.708 0 0)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.145 0 0)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.205 0 0)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.205 0 0)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.922 0 0)",
|
||||
"primary-foreground": "oklch(0.205 0 0)",
|
||||
"secondary": "oklch(0.269 0 0)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.269 0 0)",
|
||||
"muted-foreground": "oklch(0.708 0 0)",
|
||||
"accent": "oklch(0.269 0 0)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.556 0 0)",
|
||||
"chart-1": "oklch(0.87 0 0)",
|
||||
"chart-2": "oklch(0.556 0 0)",
|
||||
"chart-3": "oklch(0.439 0 0)",
|
||||
"chart-4": "oklch(0.371 0 0)",
|
||||
"chart-5": "oklch(0.269 0 0)",
|
||||
"sidebar": "oklch(0.205 0 0)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.269 0 0)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.556 0 0)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.145 0 0)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.145 0 0)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.145 0 0)",
|
||||
"primary": "oklch(0.205 0 0)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.97 0 0)",
|
||||
"secondary-foreground": "oklch(0.205 0 0)",
|
||||
"muted": "oklch(0.97 0 0)",
|
||||
"muted-foreground": "oklch(0.556 0 0)",
|
||||
"accent": "oklch(0.97 0 0)",
|
||||
"accent-foreground": "oklch(0.205 0 0)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0 0)",
|
||||
"input": "oklch(0.922 0 0)",
|
||||
"ring": "oklch(0.708 0 0)",
|
||||
"chart-1": "oklch(0.87 0 0)",
|
||||
"chart-2": "oklch(0.556 0 0)",
|
||||
"chart-3": "oklch(0.439 0 0)",
|
||||
"chart-4": "oklch(0.371 0 0)",
|
||||
"chart-5": "oklch(0.269 0 0)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.145 0 0)",
|
||||
"sidebar-primary": "oklch(0.205 0 0)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.97 0 0)",
|
||||
"sidebar-accent-foreground": "oklch(0.205 0 0)",
|
||||
"sidebar-border": "oklch(0.922 0 0)",
|
||||
"sidebar-ring": "oklch(0.708 0 0)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.145 0 0)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.205 0 0)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.205 0 0)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.922 0 0)",
|
||||
"primary-foreground": "oklch(0.205 0 0)",
|
||||
"secondary": "oklch(0.269 0 0)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.269 0 0)",
|
||||
"muted-foreground": "oklch(0.708 0 0)",
|
||||
"accent": "oklch(0.269 0 0)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.556 0 0)",
|
||||
"chart-1": "oklch(0.87 0 0)",
|
||||
"chart-2": "oklch(0.556 0 0)",
|
||||
"chart-3": "oklch(0.439 0 0)",
|
||||
"chart-4": "oklch(0.371 0 0)",
|
||||
"chart-5": "oklch(0.269 0 0)",
|
||||
"sidebar": "oklch(0.205 0 0)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.269 0 0)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.556 0 0)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\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.87 0 0);\n --chart-2: oklch(0.556 0 0);\n --chart-3: oklch(0.439 0 0);\n --chart-4: oklch(0.371 0 0);\n --chart-5: oklch(0.269 0 0);\n --radius: 0.625rem;\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.87 0 0);\n --chart-2: oklch(0.556 0 0);\n --chart-3: oklch(0.439 0 0);\n --chart-4: oklch(0.371 0 0);\n --chart-5: oklch(0.269 0 0);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
211
apps/v4/public/r/colors/olive.json
Normal file
211
apps/v4/public/r/colors/olive.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.153 0.006 107.1)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"primary": "oklch(0.228 0.013 107.4)",
|
||||
"primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"secondary": "oklch(0.966 0.005 106.5)",
|
||||
"secondary-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"muted": "oklch(0.966 0.005 106.5)",
|
||||
"muted-foreground": "oklch(0.58 0.031 107.3)",
|
||||
"accent": "oklch(0.966 0.005 106.5)",
|
||||
"accent-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.93 0.007 106.5)",
|
||||
"input": "oklch(0.93 0.007 106.5)",
|
||||
"ring": "oklch(0.737 0.021 106.9)",
|
||||
"chart-1": "oklch(0.88 0.011 106.6)",
|
||||
"chart-2": "oklch(0.58 0.031 107.3)",
|
||||
"chart-3": "oklch(0.466 0.025 107.3)",
|
||||
"chart-4": "oklch(0.394 0.023 107.4)",
|
||||
"chart-5": "oklch(0.286 0.016 107.4)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"sidebar-primary": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-accent": "oklch(0.966 0.005 106.5)",
|
||||
"sidebar-accent-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-border": "oklch(0.93 0.007 106.5)",
|
||||
"sidebar-ring": "oklch(0.737 0.021 106.9)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.153 0.006 107.1)",
|
||||
"foreground": "oklch(0.988 0.003 106.5)",
|
||||
"card": "oklch(0.228 0.013 107.4)",
|
||||
"card-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"popover": "oklch(0.228 0.013 107.4)",
|
||||
"popover-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"primary": "oklch(0.93 0.007 106.5)",
|
||||
"primary-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"secondary": "oklch(0.286 0.016 107.4)",
|
||||
"secondary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"muted": "oklch(0.286 0.016 107.4)",
|
||||
"muted-foreground": "oklch(0.737 0.021 106.9)",
|
||||
"accent": "oklch(0.286 0.016 107.4)",
|
||||
"accent-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.58 0.031 107.3)",
|
||||
"chart-1": "oklch(0.88 0.011 106.6)",
|
||||
"chart-2": "oklch(0.58 0.031 107.3)",
|
||||
"chart-3": "oklch(0.466 0.025 107.3)",
|
||||
"chart-4": "oklch(0.394 0.023 107.4)",
|
||||
"chart-5": "oklch(0.286 0.016 107.4)",
|
||||
"sidebar": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-accent": "oklch(0.286 0.016 107.4)",
|
||||
"sidebar-accent-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.58 0.031 107.3)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.153 0.006 107.1)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"primary": "oklch(0.228 0.013 107.4)",
|
||||
"primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"secondary": "oklch(0.966 0.005 106.5)",
|
||||
"secondary-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"muted": "oklch(0.966 0.005 106.5)",
|
||||
"muted-foreground": "oklch(0.58 0.031 107.3)",
|
||||
"accent": "oklch(0.966 0.005 106.5)",
|
||||
"accent-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.93 0.007 106.5)",
|
||||
"input": "oklch(0.93 0.007 106.5)",
|
||||
"ring": "oklch(0.737 0.021 106.9)",
|
||||
"chart-1": "oklch(0.88 0.011 106.6)",
|
||||
"chart-2": "oklch(0.58 0.031 107.3)",
|
||||
"chart-3": "oklch(0.466 0.025 107.3)",
|
||||
"chart-4": "oklch(0.394 0.023 107.4)",
|
||||
"chart-5": "oklch(0.286 0.016 107.4)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"sidebar-primary": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-accent": "oklch(0.966 0.005 106.5)",
|
||||
"sidebar-accent-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-border": "oklch(0.93 0.007 106.5)",
|
||||
"sidebar-ring": "oklch(0.737 0.021 106.9)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.153 0.006 107.1)",
|
||||
"foreground": "oklch(0.988 0.003 106.5)",
|
||||
"card": "oklch(0.228 0.013 107.4)",
|
||||
"card-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"popover": "oklch(0.228 0.013 107.4)",
|
||||
"popover-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"primary": "oklch(0.93 0.007 106.5)",
|
||||
"primary-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"secondary": "oklch(0.286 0.016 107.4)",
|
||||
"secondary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"muted": "oklch(0.286 0.016 107.4)",
|
||||
"muted-foreground": "oklch(0.737 0.021 106.9)",
|
||||
"accent": "oklch(0.286 0.016 107.4)",
|
||||
"accent-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.58 0.031 107.3)",
|
||||
"chart-1": "oklch(0.88 0.011 106.6)",
|
||||
"chart-2": "oklch(0.58 0.031 107.3)",
|
||||
"chart-3": "oklch(0.466 0.025 107.3)",
|
||||
"chart-4": "oklch(0.394 0.023 107.4)",
|
||||
"chart-5": "oklch(0.286 0.016 107.4)",
|
||||
"sidebar": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-accent": "oklch(0.286 0.016 107.4)",
|
||||
"sidebar-accent-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.58 0.031 107.3)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.153 0.006 107.1)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"primary": "oklch(0.228 0.013 107.4)",
|
||||
"primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"secondary": "oklch(0.966 0.005 106.5)",
|
||||
"secondary-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"muted": "oklch(0.966 0.005 106.5)",
|
||||
"muted-foreground": "oklch(0.58 0.031 107.3)",
|
||||
"accent": "oklch(0.966 0.005 106.5)",
|
||||
"accent-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.93 0.007 106.5)",
|
||||
"input": "oklch(0.93 0.007 106.5)",
|
||||
"ring": "oklch(0.737 0.021 106.9)",
|
||||
"chart-1": "oklch(0.88 0.011 106.6)",
|
||||
"chart-2": "oklch(0.58 0.031 107.3)",
|
||||
"chart-3": "oklch(0.466 0.025 107.3)",
|
||||
"chart-4": "oklch(0.394 0.023 107.4)",
|
||||
"chart-5": "oklch(0.286 0.016 107.4)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-foreground": "oklch(0.153 0.006 107.1)",
|
||||
"sidebar-primary": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-accent": "oklch(0.966 0.005 106.5)",
|
||||
"sidebar-accent-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-border": "oklch(0.93 0.007 106.5)",
|
||||
"sidebar-ring": "oklch(0.737 0.021 106.9)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.153 0.006 107.1)",
|
||||
"foreground": "oklch(0.988 0.003 106.5)",
|
||||
"card": "oklch(0.228 0.013 107.4)",
|
||||
"card-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"popover": "oklch(0.228 0.013 107.4)",
|
||||
"popover-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"primary": "oklch(0.93 0.007 106.5)",
|
||||
"primary-foreground": "oklch(0.228 0.013 107.4)",
|
||||
"secondary": "oklch(0.286 0.016 107.4)",
|
||||
"secondary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"muted": "oklch(0.286 0.016 107.4)",
|
||||
"muted-foreground": "oklch(0.737 0.021 106.9)",
|
||||
"accent": "oklch(0.286 0.016 107.4)",
|
||||
"accent-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.58 0.031 107.3)",
|
||||
"chart-1": "oklch(0.88 0.011 106.6)",
|
||||
"chart-2": "oklch(0.58 0.031 107.3)",
|
||||
"chart-3": "oklch(0.466 0.025 107.3)",
|
||||
"chart-4": "oklch(0.394 0.023 107.4)",
|
||||
"chart-5": "oklch(0.286 0.016 107.4)",
|
||||
"sidebar": "oklch(0.228 0.013 107.4)",
|
||||
"sidebar-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-accent": "oklch(0.286 0.016 107.4)",
|
||||
"sidebar-accent-foreground": "oklch(0.988 0.003 106.5)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.58 0.031 107.3)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.153 0.006 107.1);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.153 0.006 107.1);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.153 0.006 107.1);\n --primary: oklch(0.228 0.013 107.4);\n --primary-foreground: oklch(0.988 0.003 106.5);\n --secondary: oklch(0.966 0.005 106.5);\n --secondary-foreground: oklch(0.228 0.013 107.4);\n --muted: oklch(0.966 0.005 106.5);\n --muted-foreground: oklch(0.58 0.031 107.3);\n --accent: oklch(0.966 0.005 106.5);\n --accent-foreground: oklch(0.228 0.013 107.4);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.93 0.007 106.5);\n --input: oklch(0.93 0.007 106.5);\n --ring: oklch(0.737 0.021 106.9);\n --chart-1: oklch(0.88 0.011 106.6);\n --chart-2: oklch(0.58 0.031 107.3);\n --chart-3: oklch(0.466 0.025 107.3);\n --chart-4: oklch(0.394 0.023 107.4);\n --chart-5: oklch(0.286 0.016 107.4);\n --radius: 0.625rem;\n }\n\n .dark {\n --background: oklch(0.153 0.006 107.1);\n --foreground: oklch(0.988 0.003 106.5);\n --card: oklch(0.228 0.013 107.4);\n --card-foreground: oklch(0.988 0.003 106.5);\n --popover: oklch(0.228 0.013 107.4);\n --popover-foreground: oklch(0.988 0.003 106.5);\n --primary: oklch(0.93 0.007 106.5);\n --primary-foreground: oklch(0.228 0.013 107.4);\n --secondary: oklch(0.286 0.016 107.4);\n --secondary-foreground: oklch(0.988 0.003 106.5);\n --muted: oklch(0.286 0.016 107.4);\n --muted-foreground: oklch(0.737 0.021 106.9);\n --accent: oklch(0.286 0.016 107.4);\n --accent-foreground: oklch(0.988 0.003 106.5);\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.58 0.031 107.3);\n --chart-1: oklch(0.88 0.011 106.6);\n --chart-2: oklch(0.58 0.031 107.3);\n --chart-3: oklch(0.466 0.025 107.3);\n --chart-4: oklch(0.394 0.023 107.4);\n --chart-5: oklch(0.286 0.016 107.4);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
171
apps/v4/public/r/colors/slate.json
Normal file
171
apps/v4/public/r/colors/slate.json
Normal file
@@ -0,0 +1,171 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "white",
|
||||
"foreground": "slate-950",
|
||||
"card": "white",
|
||||
"card-foreground": "slate-950",
|
||||
"popover": "white",
|
||||
"popover-foreground": "slate-950",
|
||||
"primary": "slate-900",
|
||||
"primary-foreground": "slate-50",
|
||||
"secondary": "slate-100",
|
||||
"secondary-foreground": "slate-900",
|
||||
"muted": "slate-100",
|
||||
"muted-foreground": "slate-500",
|
||||
"accent": "slate-100",
|
||||
"accent-foreground": "slate-900",
|
||||
"destructive": "red-500",
|
||||
"destructive-foreground": "slate-50",
|
||||
"border": "slate-200",
|
||||
"input": "slate-200",
|
||||
"ring": "slate-950"
|
||||
},
|
||||
"dark": {
|
||||
"background": "slate-950",
|
||||
"foreground": "slate-50",
|
||||
"card": "slate-950",
|
||||
"card-foreground": "slate-50",
|
||||
"popover": "slate-950",
|
||||
"popover-foreground": "slate-50",
|
||||
"primary": "slate-50",
|
||||
"primary-foreground": "slate-900",
|
||||
"secondary": "slate-800",
|
||||
"secondary-foreground": "slate-50",
|
||||
"muted": "slate-800",
|
||||
"muted-foreground": "slate-400",
|
||||
"accent": "slate-800",
|
||||
"accent-foreground": "slate-50",
|
||||
"destructive": "red-900",
|
||||
"destructive-foreground": "slate-50",
|
||||
"border": "slate-800",
|
||||
"input": "slate-800",
|
||||
"ring": "slate-300"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "0 0% 100%",
|
||||
"foreground": "222.2 84% 4.9%",
|
||||
"card": "0 0% 100%",
|
||||
"card-foreground": "222.2 84% 4.9%",
|
||||
"popover": "0 0% 100%",
|
||||
"popover-foreground": "222.2 84% 4.9%",
|
||||
"primary": "222.2 47.4% 11.2%",
|
||||
"primary-foreground": "210 40% 98%",
|
||||
"secondary": "210 40% 96.1%",
|
||||
"secondary-foreground": "222.2 47.4% 11.2%",
|
||||
"muted": "210 40% 96.1%",
|
||||
"muted-foreground": "215.4 16.3% 46.9%",
|
||||
"accent": "210 40% 96.1%",
|
||||
"accent-foreground": "222.2 47.4% 11.2%",
|
||||
"destructive": "0 84.2% 60.2%",
|
||||
"destructive-foreground": "210 40% 98%",
|
||||
"border": "214.3 31.8% 91.4%",
|
||||
"input": "214.3 31.8% 91.4%",
|
||||
"ring": "222.2 84% 4.9%",
|
||||
"chart-1": "12 76% 61%",
|
||||
"chart-2": "173 58% 39%",
|
||||
"chart-3": "197 37% 24%",
|
||||
"chart-4": "43 74% 66%",
|
||||
"chart-5": "27 87% 67%"
|
||||
},
|
||||
"dark": {
|
||||
"background": "222.2 84% 4.9%",
|
||||
"foreground": "210 40% 98%",
|
||||
"card": "222.2 84% 4.9%",
|
||||
"card-foreground": "210 40% 98%",
|
||||
"popover": "222.2 84% 4.9%",
|
||||
"popover-foreground": "210 40% 98%",
|
||||
"primary": "210 40% 98%",
|
||||
"primary-foreground": "222.2 47.4% 11.2%",
|
||||
"secondary": "217.2 32.6% 17.5%",
|
||||
"secondary-foreground": "210 40% 98%",
|
||||
"muted": "217.2 32.6% 17.5%",
|
||||
"muted-foreground": "215 20.2% 65.1%",
|
||||
"accent": "217.2 32.6% 17.5%",
|
||||
"accent-foreground": "210 40% 98%",
|
||||
"destructive": "0 62.8% 30.6%",
|
||||
"destructive-foreground": "210 40% 98%",
|
||||
"border": "217.2 32.6% 17.5%",
|
||||
"input": "217.2 32.6% 17.5%",
|
||||
"ring": "212.7 26.8% 83.9%",
|
||||
"chart-1": "220 70% 50%",
|
||||
"chart-2": "160 60% 45%",
|
||||
"chart-3": "30 80% 55%",
|
||||
"chart-4": "280 65% 60%",
|
||||
"chart-5": "340 75% 55%"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.129 0.042 264.695)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.129 0.042 264.695)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.129 0.042 264.695)",
|
||||
"primary": "oklch(0.208 0.042 265.755)",
|
||||
"primary-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"secondary": "oklch(0.968 0.007 247.896)",
|
||||
"secondary-foreground": "oklch(0.208 0.042 265.755)",
|
||||
"muted": "oklch(0.968 0.007 247.896)",
|
||||
"muted-foreground": "oklch(0.554 0.046 257.417)",
|
||||
"accent": "oklch(0.968 0.007 247.896)",
|
||||
"accent-foreground": "oklch(0.208 0.042 265.755)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.929 0.013 255.508)",
|
||||
"input": "oklch(0.929 0.013 255.508)",
|
||||
"ring": "oklch(0.704 0.04 256.788)",
|
||||
"chart-1": "oklch(0.646 0.222 41.116)",
|
||||
"chart-2": "oklch(0.6 0.118 184.704)",
|
||||
"chart-3": "oklch(0.398 0.07 227.392)",
|
||||
"chart-4": "oklch(0.828 0.189 84.429)",
|
||||
"chart-5": "oklch(0.769 0.188 70.08)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.984 0.003 247.858)",
|
||||
"sidebar-foreground": "oklch(0.129 0.042 264.695)",
|
||||
"sidebar-primary": "oklch(0.208 0.042 265.755)",
|
||||
"sidebar-primary-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"sidebar-accent": "oklch(0.968 0.007 247.896)",
|
||||
"sidebar-accent-foreground": "oklch(0.208 0.042 265.755)",
|
||||
"sidebar-border": "oklch(0.929 0.013 255.508)",
|
||||
"sidebar-ring": "oklch(0.704 0.04 256.788)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.129 0.042 264.695)",
|
||||
"foreground": "oklch(0.984 0.003 247.858)",
|
||||
"card": "oklch(0.208 0.042 265.755)",
|
||||
"card-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"popover": "oklch(0.208 0.042 265.755)",
|
||||
"popover-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"primary": "oklch(0.929 0.013 255.508)",
|
||||
"primary-foreground": "oklch(0.208 0.042 265.755)",
|
||||
"secondary": "oklch(0.279 0.041 260.031)",
|
||||
"secondary-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"muted": "oklch(0.279 0.041 260.031)",
|
||||
"muted-foreground": "oklch(0.704 0.04 256.788)",
|
||||
"accent": "oklch(0.279 0.041 260.031)",
|
||||
"accent-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.551 0.027 264.364)",
|
||||
"chart-1": "oklch(0.488 0.243 264.376)",
|
||||
"chart-2": "oklch(0.696 0.17 162.48)",
|
||||
"chart-3": "oklch(0.769 0.188 70.08)",
|
||||
"chart-4": "oklch(0.627 0.265 303.9)",
|
||||
"chart-5": "oklch(0.645 0.246 16.439)",
|
||||
"sidebar": "oklch(0.208 0.042 265.755)",
|
||||
"sidebar-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"sidebar-accent": "oklch(0.279 0.041 260.031)",
|
||||
"sidebar-accent-foreground": "oklch(0.984 0.003 247.858)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.551 0.027 264.364)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: 0 0% 100%;\n --foreground: 222.2 84% 4.9%;\n --card: 0 0% 100%;\n --card-foreground: 222.2 84% 4.9%;\n --popover: 0 0% 100%;\n --popover-foreground: 222.2 84% 4.9%;\n --primary: 222.2 47.4% 11.2%;\n --primary-foreground: 210 40% 98%;\n --secondary: 210 40% 96.1%;\n --secondary-foreground: 222.2 47.4% 11.2%;\n --muted: 210 40% 96.1%;\n --muted-foreground: 215.4 16.3% 46.9%;\n --accent: 210 40% 96.1%;\n --accent-foreground: 222.2 47.4% 11.2%;\n --destructive: 0 84.2% 60.2%;\n --destructive-foreground: 210 40% 98%;\n --border: 214.3 31.8% 91.4%;\n --input: 214.3 31.8% 91.4%;\n --ring: 222.2 84% 4.9%;\n --radius: 0.5rem;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n }\n\n .dark {\n --background: 222.2 84% 4.9%;\n --foreground: 210 40% 98%;\n --card: 222.2 84% 4.9%;\n --card-foreground: 210 40% 98%;\n --popover: 222.2 84% 4.9%;\n --popover-foreground: 210 40% 98%;\n --primary: 210 40% 98%;\n --primary-foreground: 222.2 47.4% 11.2%;\n --secondary: 217.2 32.6% 17.5%;\n --secondary-foreground: 210 40% 98%;\n --muted: 217.2 32.6% 17.5%;\n --muted-foreground: 215 20.2% 65.1%;\n --accent: 217.2 32.6% 17.5%;\n --accent-foreground: 210 40% 98%;\n --destructive: 0 62.8% 30.6%;\n --destructive-foreground: 210 40% 98%;\n --border: 217.2 32.6% 17.5%;\n --input: 217.2 32.6% 17.5%;\n --ring: 212.7 26.8% 83.9%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
211
apps/v4/public/r/colors/stone.json
Normal file
211
apps/v4/public/r/colors/stone.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.147 0.004 49.25)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"primary": "oklch(0.216 0.006 56.043)",
|
||||
"primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"secondary": "oklch(0.97 0.001 106.424)",
|
||||
"secondary-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"muted": "oklch(0.97 0.001 106.424)",
|
||||
"muted-foreground": "oklch(0.553 0.013 58.071)",
|
||||
"accent": "oklch(0.97 0.001 106.424)",
|
||||
"accent-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.923 0.003 48.717)",
|
||||
"input": "oklch(0.923 0.003 48.717)",
|
||||
"ring": "oklch(0.709 0.01 56.259)",
|
||||
"chart-1": "oklch(0.869 0.005 56.366)",
|
||||
"chart-2": "oklch(0.553 0.013 58.071)",
|
||||
"chart-3": "oklch(0.444 0.011 73.639)",
|
||||
"chart-4": "oklch(0.374 0.01 67.558)",
|
||||
"chart-5": "oklch(0.268 0.007 34.298)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"sidebar-primary": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-accent": "oklch(0.97 0.001 106.424)",
|
||||
"sidebar-accent-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-border": "oklch(0.923 0.003 48.717)",
|
||||
"sidebar-ring": "oklch(0.709 0.01 56.259)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.147 0.004 49.25)",
|
||||
"foreground": "oklch(0.985 0.001 106.423)",
|
||||
"card": "oklch(0.216 0.006 56.043)",
|
||||
"card-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"popover": "oklch(0.216 0.006 56.043)",
|
||||
"popover-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"primary": "oklch(0.923 0.003 48.717)",
|
||||
"primary-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"secondary": "oklch(0.268 0.007 34.298)",
|
||||
"secondary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"muted": "oklch(0.268 0.007 34.298)",
|
||||
"muted-foreground": "oklch(0.709 0.01 56.259)",
|
||||
"accent": "oklch(0.268 0.007 34.298)",
|
||||
"accent-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.553 0.013 58.071)",
|
||||
"chart-1": "oklch(0.869 0.005 56.366)",
|
||||
"chart-2": "oklch(0.553 0.013 58.071)",
|
||||
"chart-3": "oklch(0.444 0.011 73.639)",
|
||||
"chart-4": "oklch(0.374 0.01 67.558)",
|
||||
"chart-5": "oklch(0.268 0.007 34.298)",
|
||||
"sidebar": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-accent": "oklch(0.268 0.007 34.298)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.553 0.013 58.071)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.147 0.004 49.25)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"primary": "oklch(0.216 0.006 56.043)",
|
||||
"primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"secondary": "oklch(0.97 0.001 106.424)",
|
||||
"secondary-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"muted": "oklch(0.97 0.001 106.424)",
|
||||
"muted-foreground": "oklch(0.553 0.013 58.071)",
|
||||
"accent": "oklch(0.97 0.001 106.424)",
|
||||
"accent-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.923 0.003 48.717)",
|
||||
"input": "oklch(0.923 0.003 48.717)",
|
||||
"ring": "oklch(0.709 0.01 56.259)",
|
||||
"chart-1": "oklch(0.869 0.005 56.366)",
|
||||
"chart-2": "oklch(0.553 0.013 58.071)",
|
||||
"chart-3": "oklch(0.444 0.011 73.639)",
|
||||
"chart-4": "oklch(0.374 0.01 67.558)",
|
||||
"chart-5": "oklch(0.268 0.007 34.298)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"sidebar-primary": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-accent": "oklch(0.97 0.001 106.424)",
|
||||
"sidebar-accent-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-border": "oklch(0.923 0.003 48.717)",
|
||||
"sidebar-ring": "oklch(0.709 0.01 56.259)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.147 0.004 49.25)",
|
||||
"foreground": "oklch(0.985 0.001 106.423)",
|
||||
"card": "oklch(0.216 0.006 56.043)",
|
||||
"card-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"popover": "oklch(0.216 0.006 56.043)",
|
||||
"popover-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"primary": "oklch(0.923 0.003 48.717)",
|
||||
"primary-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"secondary": "oklch(0.268 0.007 34.298)",
|
||||
"secondary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"muted": "oklch(0.268 0.007 34.298)",
|
||||
"muted-foreground": "oklch(0.709 0.01 56.259)",
|
||||
"accent": "oklch(0.268 0.007 34.298)",
|
||||
"accent-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.553 0.013 58.071)",
|
||||
"chart-1": "oklch(0.869 0.005 56.366)",
|
||||
"chart-2": "oklch(0.553 0.013 58.071)",
|
||||
"chart-3": "oklch(0.444 0.011 73.639)",
|
||||
"chart-4": "oklch(0.374 0.01 67.558)",
|
||||
"chart-5": "oklch(0.268 0.007 34.298)",
|
||||
"sidebar": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-accent": "oklch(0.268 0.007 34.298)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.553 0.013 58.071)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.147 0.004 49.25)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"primary": "oklch(0.216 0.006 56.043)",
|
||||
"primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"secondary": "oklch(0.97 0.001 106.424)",
|
||||
"secondary-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"muted": "oklch(0.97 0.001 106.424)",
|
||||
"muted-foreground": "oklch(0.553 0.013 58.071)",
|
||||
"accent": "oklch(0.97 0.001 106.424)",
|
||||
"accent-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.923 0.003 48.717)",
|
||||
"input": "oklch(0.923 0.003 48.717)",
|
||||
"ring": "oklch(0.709 0.01 56.259)",
|
||||
"chart-1": "oklch(0.869 0.005 56.366)",
|
||||
"chart-2": "oklch(0.553 0.013 58.071)",
|
||||
"chart-3": "oklch(0.444 0.011 73.639)",
|
||||
"chart-4": "oklch(0.374 0.01 67.558)",
|
||||
"chart-5": "oklch(0.268 0.007 34.298)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-foreground": "oklch(0.147 0.004 49.25)",
|
||||
"sidebar-primary": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-accent": "oklch(0.97 0.001 106.424)",
|
||||
"sidebar-accent-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-border": "oklch(0.923 0.003 48.717)",
|
||||
"sidebar-ring": "oklch(0.709 0.01 56.259)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.147 0.004 49.25)",
|
||||
"foreground": "oklch(0.985 0.001 106.423)",
|
||||
"card": "oklch(0.216 0.006 56.043)",
|
||||
"card-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"popover": "oklch(0.216 0.006 56.043)",
|
||||
"popover-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"primary": "oklch(0.923 0.003 48.717)",
|
||||
"primary-foreground": "oklch(0.216 0.006 56.043)",
|
||||
"secondary": "oklch(0.268 0.007 34.298)",
|
||||
"secondary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"muted": "oklch(0.268 0.007 34.298)",
|
||||
"muted-foreground": "oklch(0.709 0.01 56.259)",
|
||||
"accent": "oklch(0.268 0.007 34.298)",
|
||||
"accent-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.553 0.013 58.071)",
|
||||
"chart-1": "oklch(0.869 0.005 56.366)",
|
||||
"chart-2": "oklch(0.553 0.013 58.071)",
|
||||
"chart-3": "oklch(0.444 0.011 73.639)",
|
||||
"chart-4": "oklch(0.374 0.01 67.558)",
|
||||
"chart-5": "oklch(0.268 0.007 34.298)",
|
||||
"sidebar": "oklch(0.216 0.006 56.043)",
|
||||
"sidebar-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-accent": "oklch(0.268 0.007 34.298)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0.001 106.423)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.553 0.013 58.071)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.147 0.004 49.25);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.147 0.004 49.25);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.147 0.004 49.25);\n --primary: oklch(0.216 0.006 56.043);\n --primary-foreground: oklch(0.985 0.001 106.423);\n --secondary: oklch(0.97 0.001 106.424);\n --secondary-foreground: oklch(0.216 0.006 56.043);\n --muted: oklch(0.97 0.001 106.424);\n --muted-foreground: oklch(0.553 0.013 58.071);\n --accent: oklch(0.97 0.001 106.424);\n --accent-foreground: oklch(0.216 0.006 56.043);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.923 0.003 48.717);\n --input: oklch(0.923 0.003 48.717);\n --ring: oklch(0.709 0.01 56.259);\n --chart-1: oklch(0.869 0.005 56.366);\n --chart-2: oklch(0.553 0.013 58.071);\n --chart-3: oklch(0.444 0.011 73.639);\n --chart-4: oklch(0.374 0.01 67.558);\n --chart-5: oklch(0.268 0.007 34.298);\n --radius: 0.625rem;\n }\n\n .dark {\n --background: oklch(0.147 0.004 49.25);\n --foreground: oklch(0.985 0.001 106.423);\n --card: oklch(0.216 0.006 56.043);\n --card-foreground: oklch(0.985 0.001 106.423);\n --popover: oklch(0.216 0.006 56.043);\n --popover-foreground: oklch(0.985 0.001 106.423);\n --primary: oklch(0.923 0.003 48.717);\n --primary-foreground: oklch(0.216 0.006 56.043);\n --secondary: oklch(0.268 0.007 34.298);\n --secondary-foreground: oklch(0.985 0.001 106.423);\n --muted: oklch(0.268 0.007 34.298);\n --muted-foreground: oklch(0.709 0.01 56.259);\n --accent: oklch(0.268 0.007 34.298);\n --accent-foreground: oklch(0.985 0.001 106.423);\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.553 0.013 58.071);\n --chart-1: oklch(0.869 0.005 56.366);\n --chart-2: oklch(0.553 0.013 58.071);\n --chart-3: oklch(0.444 0.011 73.639);\n --chart-4: oklch(0.374 0.01 67.558);\n --chart-5: oklch(0.268 0.007 34.298);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
211
apps/v4/public/r/colors/taupe.json
Normal file
211
apps/v4/public/r/colors/taupe.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.147 0.004 49.3)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"primary": "oklch(0.214 0.009 43.1)",
|
||||
"primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"secondary": "oklch(0.96 0.002 17.2)",
|
||||
"secondary-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"muted": "oklch(0.96 0.002 17.2)",
|
||||
"muted-foreground": "oklch(0.547 0.021 43.1)",
|
||||
"accent": "oklch(0.96 0.002 17.2)",
|
||||
"accent-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0.005 34.3)",
|
||||
"input": "oklch(0.922 0.005 34.3)",
|
||||
"ring": "oklch(0.714 0.014 41.2)",
|
||||
"chart-1": "oklch(0.868 0.007 39.5)",
|
||||
"chart-2": "oklch(0.547 0.021 43.1)",
|
||||
"chart-3": "oklch(0.438 0.017 39.3)",
|
||||
"chart-4": "oklch(0.367 0.016 35.7)",
|
||||
"chart-5": "oklch(0.268 0.011 36.5)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"sidebar-primary": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-accent": "oklch(0.96 0.002 17.2)",
|
||||
"sidebar-accent-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-border": "oklch(0.922 0.005 34.3)",
|
||||
"sidebar-ring": "oklch(0.714 0.014 41.2)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.147 0.004 49.3)",
|
||||
"foreground": "oklch(0.986 0.002 67.8)",
|
||||
"card": "oklch(0.214 0.009 43.1)",
|
||||
"card-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"popover": "oklch(0.214 0.009 43.1)",
|
||||
"popover-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"primary": "oklch(0.922 0.005 34.3)",
|
||||
"primary-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"secondary": "oklch(0.268 0.011 36.5)",
|
||||
"secondary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"muted": "oklch(0.268 0.011 36.5)",
|
||||
"muted-foreground": "oklch(0.714 0.014 41.2)",
|
||||
"accent": "oklch(0.268 0.011 36.5)",
|
||||
"accent-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.547 0.021 43.1)",
|
||||
"chart-1": "oklch(0.868 0.007 39.5)",
|
||||
"chart-2": "oklch(0.547 0.021 43.1)",
|
||||
"chart-3": "oklch(0.438 0.017 39.3)",
|
||||
"chart-4": "oklch(0.367 0.016 35.7)",
|
||||
"chart-5": "oklch(0.268 0.011 36.5)",
|
||||
"sidebar": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-accent": "oklch(0.268 0.011 36.5)",
|
||||
"sidebar-accent-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.547 0.021 43.1)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.147 0.004 49.3)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"primary": "oklch(0.214 0.009 43.1)",
|
||||
"primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"secondary": "oklch(0.96 0.002 17.2)",
|
||||
"secondary-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"muted": "oklch(0.96 0.002 17.2)",
|
||||
"muted-foreground": "oklch(0.547 0.021 43.1)",
|
||||
"accent": "oklch(0.96 0.002 17.2)",
|
||||
"accent-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0.005 34.3)",
|
||||
"input": "oklch(0.922 0.005 34.3)",
|
||||
"ring": "oklch(0.714 0.014 41.2)",
|
||||
"chart-1": "oklch(0.868 0.007 39.5)",
|
||||
"chart-2": "oklch(0.547 0.021 43.1)",
|
||||
"chart-3": "oklch(0.438 0.017 39.3)",
|
||||
"chart-4": "oklch(0.367 0.016 35.7)",
|
||||
"chart-5": "oklch(0.268 0.011 36.5)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"sidebar-primary": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-accent": "oklch(0.96 0.002 17.2)",
|
||||
"sidebar-accent-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-border": "oklch(0.922 0.005 34.3)",
|
||||
"sidebar-ring": "oklch(0.714 0.014 41.2)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.147 0.004 49.3)",
|
||||
"foreground": "oklch(0.986 0.002 67.8)",
|
||||
"card": "oklch(0.214 0.009 43.1)",
|
||||
"card-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"popover": "oklch(0.214 0.009 43.1)",
|
||||
"popover-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"primary": "oklch(0.922 0.005 34.3)",
|
||||
"primary-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"secondary": "oklch(0.268 0.011 36.5)",
|
||||
"secondary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"muted": "oklch(0.268 0.011 36.5)",
|
||||
"muted-foreground": "oklch(0.714 0.014 41.2)",
|
||||
"accent": "oklch(0.268 0.011 36.5)",
|
||||
"accent-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.547 0.021 43.1)",
|
||||
"chart-1": "oklch(0.868 0.007 39.5)",
|
||||
"chart-2": "oklch(0.547 0.021 43.1)",
|
||||
"chart-3": "oklch(0.438 0.017 39.3)",
|
||||
"chart-4": "oklch(0.367 0.016 35.7)",
|
||||
"chart-5": "oklch(0.268 0.011 36.5)",
|
||||
"sidebar": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-accent": "oklch(0.268 0.011 36.5)",
|
||||
"sidebar-accent-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.547 0.021 43.1)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.147 0.004 49.3)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"primary": "oklch(0.214 0.009 43.1)",
|
||||
"primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"secondary": "oklch(0.96 0.002 17.2)",
|
||||
"secondary-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"muted": "oklch(0.96 0.002 17.2)",
|
||||
"muted-foreground": "oklch(0.547 0.021 43.1)",
|
||||
"accent": "oklch(0.96 0.002 17.2)",
|
||||
"accent-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.922 0.005 34.3)",
|
||||
"input": "oklch(0.922 0.005 34.3)",
|
||||
"ring": "oklch(0.714 0.014 41.2)",
|
||||
"chart-1": "oklch(0.868 0.007 39.5)",
|
||||
"chart-2": "oklch(0.547 0.021 43.1)",
|
||||
"chart-3": "oklch(0.438 0.017 39.3)",
|
||||
"chart-4": "oklch(0.367 0.016 35.7)",
|
||||
"chart-5": "oklch(0.268 0.011 36.5)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-foreground": "oklch(0.147 0.004 49.3)",
|
||||
"sidebar-primary": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-accent": "oklch(0.96 0.002 17.2)",
|
||||
"sidebar-accent-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-border": "oklch(0.922 0.005 34.3)",
|
||||
"sidebar-ring": "oklch(0.714 0.014 41.2)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.147 0.004 49.3)",
|
||||
"foreground": "oklch(0.986 0.002 67.8)",
|
||||
"card": "oklch(0.214 0.009 43.1)",
|
||||
"card-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"popover": "oklch(0.214 0.009 43.1)",
|
||||
"popover-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"primary": "oklch(0.922 0.005 34.3)",
|
||||
"primary-foreground": "oklch(0.214 0.009 43.1)",
|
||||
"secondary": "oklch(0.268 0.011 36.5)",
|
||||
"secondary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"muted": "oklch(0.268 0.011 36.5)",
|
||||
"muted-foreground": "oklch(0.714 0.014 41.2)",
|
||||
"accent": "oklch(0.268 0.011 36.5)",
|
||||
"accent-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.547 0.021 43.1)",
|
||||
"chart-1": "oklch(0.868 0.007 39.5)",
|
||||
"chart-2": "oklch(0.547 0.021 43.1)",
|
||||
"chart-3": "oklch(0.438 0.017 39.3)",
|
||||
"chart-4": "oklch(0.367 0.016 35.7)",
|
||||
"chart-5": "oklch(0.268 0.011 36.5)",
|
||||
"sidebar": "oklch(0.214 0.009 43.1)",
|
||||
"sidebar-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-accent": "oklch(0.268 0.011 36.5)",
|
||||
"sidebar-accent-foreground": "oklch(0.986 0.002 67.8)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.547 0.021 43.1)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.147 0.004 49.3);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.147 0.004 49.3);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.147 0.004 49.3);\n --primary: oklch(0.214 0.009 43.1);\n --primary-foreground: oklch(0.986 0.002 67.8);\n --secondary: oklch(0.96 0.002 17.2);\n --secondary-foreground: oklch(0.214 0.009 43.1);\n --muted: oklch(0.96 0.002 17.2);\n --muted-foreground: oklch(0.547 0.021 43.1);\n --accent: oklch(0.96 0.002 17.2);\n --accent-foreground: oklch(0.214 0.009 43.1);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0.005 34.3);\n --input: oklch(0.922 0.005 34.3);\n --ring: oklch(0.714 0.014 41.2);\n --chart-1: oklch(0.868 0.007 39.5);\n --chart-2: oklch(0.547 0.021 43.1);\n --chart-3: oklch(0.438 0.017 39.3);\n --chart-4: oklch(0.367 0.016 35.7);\n --chart-5: oklch(0.268 0.011 36.5);\n --radius: 0.625rem;\n }\n\n .dark {\n --background: oklch(0.147 0.004 49.3);\n --foreground: oklch(0.986 0.002 67.8);\n --card: oklch(0.214 0.009 43.1);\n --card-foreground: oklch(0.986 0.002 67.8);\n --popover: oklch(0.214 0.009 43.1);\n --popover-foreground: oklch(0.986 0.002 67.8);\n --primary: oklch(0.922 0.005 34.3);\n --primary-foreground: oklch(0.214 0.009 43.1);\n --secondary: oklch(0.268 0.011 36.5);\n --secondary-foreground: oklch(0.986 0.002 67.8);\n --muted: oklch(0.268 0.011 36.5);\n --muted-foreground: oklch(0.714 0.014 41.2);\n --accent: oklch(0.268 0.011 36.5);\n --accent-foreground: oklch(0.986 0.002 67.8);\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.547 0.021 43.1);\n --chart-1: oklch(0.868 0.007 39.5);\n --chart-2: oklch(0.547 0.021 43.1);\n --chart-3: oklch(0.438 0.017 39.3);\n --chart-4: oklch(0.367 0.016 35.7);\n --chart-5: oklch(0.268 0.011 36.5);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
211
apps/v4/public/r/colors/zinc.json
Normal file
211
apps/v4/public/r/colors/zinc.json
Normal file
@@ -0,0 +1,211 @@
|
||||
{
|
||||
"inlineColors": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.141 0.005 285.823)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"primary": "oklch(0.21 0.006 285.885)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.967 0.001 286.375)",
|
||||
"secondary-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"muted": "oklch(0.967 0.001 286.375)",
|
||||
"muted-foreground": "oklch(0.552 0.016 285.938)",
|
||||
"accent": "oklch(0.967 0.001 286.375)",
|
||||
"accent-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.92 0.004 286.32)",
|
||||
"input": "oklch(0.92 0.004 286.32)",
|
||||
"ring": "oklch(0.705 0.015 286.067)",
|
||||
"chart-1": "oklch(0.871 0.006 286.286)",
|
||||
"chart-2": "oklch(0.552 0.016 285.938)",
|
||||
"chart-3": "oklch(0.442 0.017 285.786)",
|
||||
"chart-4": "oklch(0.37 0.013 285.805)",
|
||||
"chart-5": "oklch(0.274 0.006 286.033)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"sidebar-primary": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.967 0.001 286.375)",
|
||||
"sidebar-accent-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-border": "oklch(0.92 0.004 286.32)",
|
||||
"sidebar-ring": "oklch(0.705 0.015 286.067)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.141 0.005 285.823)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.21 0.006 285.885)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.21 0.006 285.885)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.92 0.004 286.32)",
|
||||
"primary-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"secondary": "oklch(0.274 0.006 286.033)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.274 0.006 286.033)",
|
||||
"muted-foreground": "oklch(0.705 0.015 286.067)",
|
||||
"accent": "oklch(0.274 0.006 286.033)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.552 0.016 285.938)",
|
||||
"chart-1": "oklch(0.871 0.006 286.286)",
|
||||
"chart-2": "oklch(0.552 0.016 285.938)",
|
||||
"chart-3": "oklch(0.442 0.017 285.786)",
|
||||
"chart-4": "oklch(0.37 0.013 285.805)",
|
||||
"chart-5": "oklch(0.274 0.006 286.033)",
|
||||
"sidebar": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.274 0.006 286.033)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.552 0.016 285.938)"
|
||||
}
|
||||
},
|
||||
"cssVars": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.141 0.005 285.823)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"primary": "oklch(0.21 0.006 285.885)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.967 0.001 286.375)",
|
||||
"secondary-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"muted": "oklch(0.967 0.001 286.375)",
|
||||
"muted-foreground": "oklch(0.552 0.016 285.938)",
|
||||
"accent": "oklch(0.967 0.001 286.375)",
|
||||
"accent-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.92 0.004 286.32)",
|
||||
"input": "oklch(0.92 0.004 286.32)",
|
||||
"ring": "oklch(0.705 0.015 286.067)",
|
||||
"chart-1": "oklch(0.871 0.006 286.286)",
|
||||
"chart-2": "oklch(0.552 0.016 285.938)",
|
||||
"chart-3": "oklch(0.442 0.017 285.786)",
|
||||
"chart-4": "oklch(0.37 0.013 285.805)",
|
||||
"chart-5": "oklch(0.274 0.006 286.033)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"sidebar-primary": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.967 0.001 286.375)",
|
||||
"sidebar-accent-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-border": "oklch(0.92 0.004 286.32)",
|
||||
"sidebar-ring": "oklch(0.705 0.015 286.067)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.141 0.005 285.823)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.21 0.006 285.885)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.21 0.006 285.885)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.92 0.004 286.32)",
|
||||
"primary-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"secondary": "oklch(0.274 0.006 286.033)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.274 0.006 286.033)",
|
||||
"muted-foreground": "oklch(0.705 0.015 286.067)",
|
||||
"accent": "oklch(0.274 0.006 286.033)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.552 0.016 285.938)",
|
||||
"chart-1": "oklch(0.871 0.006 286.286)",
|
||||
"chart-2": "oklch(0.552 0.016 285.938)",
|
||||
"chart-3": "oklch(0.442 0.017 285.786)",
|
||||
"chart-4": "oklch(0.37 0.013 285.805)",
|
||||
"chart-5": "oklch(0.274 0.006 286.033)",
|
||||
"sidebar": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.274 0.006 286.033)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.552 0.016 285.938)"
|
||||
}
|
||||
},
|
||||
"cssVarsV4": {
|
||||
"light": {
|
||||
"background": "oklch(1 0 0)",
|
||||
"foreground": "oklch(0.141 0.005 285.823)",
|
||||
"card": "oklch(1 0 0)",
|
||||
"card-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"popover": "oklch(1 0 0)",
|
||||
"popover-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"primary": "oklch(0.21 0.006 285.885)",
|
||||
"primary-foreground": "oklch(0.985 0 0)",
|
||||
"secondary": "oklch(0.967 0.001 286.375)",
|
||||
"secondary-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"muted": "oklch(0.967 0.001 286.375)",
|
||||
"muted-foreground": "oklch(0.552 0.016 285.938)",
|
||||
"accent": "oklch(0.967 0.001 286.375)",
|
||||
"accent-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"destructive": "oklch(0.577 0.245 27.325)",
|
||||
"border": "oklch(0.92 0.004 286.32)",
|
||||
"input": "oklch(0.92 0.004 286.32)",
|
||||
"ring": "oklch(0.705 0.015 286.067)",
|
||||
"chart-1": "oklch(0.871 0.006 286.286)",
|
||||
"chart-2": "oklch(0.552 0.016 285.938)",
|
||||
"chart-3": "oklch(0.442 0.017 285.786)",
|
||||
"chart-4": "oklch(0.37 0.013 285.805)",
|
||||
"chart-5": "oklch(0.274 0.006 286.033)",
|
||||
"radius": "0.625rem",
|
||||
"sidebar": "oklch(0.985 0 0)",
|
||||
"sidebar-foreground": "oklch(0.141 0.005 285.823)",
|
||||
"sidebar-primary": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.967 0.001 286.375)",
|
||||
"sidebar-accent-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-border": "oklch(0.92 0.004 286.32)",
|
||||
"sidebar-ring": "oklch(0.705 0.015 286.067)"
|
||||
},
|
||||
"dark": {
|
||||
"background": "oklch(0.141 0.005 285.823)",
|
||||
"foreground": "oklch(0.985 0 0)",
|
||||
"card": "oklch(0.21 0.006 285.885)",
|
||||
"card-foreground": "oklch(0.985 0 0)",
|
||||
"popover": "oklch(0.21 0.006 285.885)",
|
||||
"popover-foreground": "oklch(0.985 0 0)",
|
||||
"primary": "oklch(0.92 0.004 286.32)",
|
||||
"primary-foreground": "oklch(0.21 0.006 285.885)",
|
||||
"secondary": "oklch(0.274 0.006 286.033)",
|
||||
"secondary-foreground": "oklch(0.985 0 0)",
|
||||
"muted": "oklch(0.274 0.006 286.033)",
|
||||
"muted-foreground": "oklch(0.705 0.015 286.067)",
|
||||
"accent": "oklch(0.274 0.006 286.033)",
|
||||
"accent-foreground": "oklch(0.985 0 0)",
|
||||
"destructive": "oklch(0.704 0.191 22.216)",
|
||||
"border": "oklch(1 0 0 / 10%)",
|
||||
"input": "oklch(1 0 0 / 15%)",
|
||||
"ring": "oklch(0.552 0.016 285.938)",
|
||||
"chart-1": "oklch(0.871 0.006 286.286)",
|
||||
"chart-2": "oklch(0.552 0.016 285.938)",
|
||||
"chart-3": "oklch(0.442 0.017 285.786)",
|
||||
"chart-4": "oklch(0.37 0.013 285.805)",
|
||||
"chart-5": "oklch(0.274 0.006 286.033)",
|
||||
"sidebar": "oklch(0.21 0.006 285.885)",
|
||||
"sidebar-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-primary": "oklch(0.488 0.243 264.376)",
|
||||
"sidebar-primary-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-accent": "oklch(0.274 0.006 286.033)",
|
||||
"sidebar-accent-foreground": "oklch(0.985 0 0)",
|
||||
"sidebar-border": "oklch(1 0 0 / 10%)",
|
||||
"sidebar-ring": "oklch(0.552 0.016 285.938)"
|
||||
}
|
||||
},
|
||||
"inlineColorsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n ",
|
||||
"cssVarsTemplate": "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@layer base {\n :root {\n --background: oklch(1 0 0);\n --foreground: oklch(0.141 0.005 285.823);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.141 0.005 285.823);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.141 0.005 285.823);\n --primary: oklch(0.21 0.006 285.885);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.967 0.001 286.375);\n --secondary-foreground: oklch(0.21 0.006 285.885);\n --muted: oklch(0.967 0.001 286.375);\n --muted-foreground: oklch(0.552 0.016 285.938);\n --accent: oklch(0.967 0.001 286.375);\n --accent-foreground: oklch(0.21 0.006 285.885);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.92 0.004 286.32);\n --input: oklch(0.92 0.004 286.32);\n --ring: oklch(0.705 0.015 286.067);\n --chart-1: oklch(0.871 0.006 286.286);\n --chart-2: oklch(0.552 0.016 285.938);\n --chart-3: oklch(0.442 0.017 285.786);\n --chart-4: oklch(0.37 0.013 285.805);\n --chart-5: oklch(0.274 0.006 286.033);\n --radius: 0.625rem;\n }\n\n .dark {\n --background: oklch(0.141 0.005 285.823);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.21 0.006 285.885);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.21 0.006 285.885);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.92 0.004 286.32);\n --primary-foreground: oklch(0.21 0.006 285.885);\n --secondary: oklch(0.274 0.006 286.033);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.274 0.006 286.033);\n --muted-foreground: oklch(0.705 0.015 286.067);\n --accent: oklch(0.274 0.006 286.033);\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.552 0.016 285.938);\n --chart-1: oklch(0.871 0.006 286.286);\n --chart-2: oklch(0.552 0.016 285.938);\n --chart-3: oklch(0.442 0.017 285.786);\n --chart-4: oklch(0.37 0.013 285.805);\n --chart-5: oklch(0.274 0.006 286.033);\n }\n}\n\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"
|
||||
}
|
||||
436
apps/v4/public/r/config.json
Normal file
436
apps/v4/public/r/config.json
Normal file
@@ -0,0 +1,436 @@
|
||||
{
|
||||
"presets": [
|
||||
{
|
||||
"name": "radix-vega",
|
||||
"title": "Vega (Radix)",
|
||||
"description": "Vega / Lucide / Inter",
|
||||
"base": "radix",
|
||||
"style": "vega",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-nova",
|
||||
"title": "Nova (Radix)",
|
||||
"description": "Nova / Lucide / Geist",
|
||||
"base": "radix",
|
||||
"style": "nova",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "geist",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-maia",
|
||||
"title": "Maia (Radix)",
|
||||
"description": "Maia / Hugeicons / Figtree",
|
||||
"base": "radix",
|
||||
"style": "maia",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"font": "figtree",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-lyra",
|
||||
"title": "Lyra (Radix)",
|
||||
"description": "Lyra / Tabler / JetBrains Mono",
|
||||
"base": "radix",
|
||||
"style": "lyra",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "phosphor",
|
||||
"font": "jetbrains-mono",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-mira",
|
||||
"title": "Mira (Radix)",
|
||||
"description": "Mira / Hugeicons / Inter",
|
||||
"base": "radix",
|
||||
"style": "mira",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-luma",
|
||||
"title": "Luma (Radix)",
|
||||
"description": "Luma / Lucide / Inter",
|
||||
"base": "radix",
|
||||
"style": "luma",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-vega",
|
||||
"title": "Vega (Aria)",
|
||||
"description": "Vega / Lucide / Inter",
|
||||
"base": "aria",
|
||||
"style": "vega",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-nova",
|
||||
"title": "Nova (Base)",
|
||||
"description": "Nova / Lucide / Geist",
|
||||
"base": "base",
|
||||
"style": "nova",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "geist",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-maia",
|
||||
"title": "Maia (Base)",
|
||||
"description": "Maia / Hugeicons / Figtree",
|
||||
"base": "base",
|
||||
"style": "maia",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"font": "figtree",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-lyra",
|
||||
"title": "Lyra (Base)",
|
||||
"description": "Lyra / Tabler / JetBrains Mono",
|
||||
"base": "base",
|
||||
"style": "lyra",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "phosphor",
|
||||
"font": "jetbrains-mono",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-mira",
|
||||
"title": "Mira (Base)",
|
||||
"description": "Mira / Hugeicons / Inter",
|
||||
"base": "base",
|
||||
"style": "mira",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-luma",
|
||||
"title": "Luma (Base)",
|
||||
"description": "Luma / Lucide / Inter",
|
||||
"base": "base",
|
||||
"style": "luma",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-vega",
|
||||
"title": "Vega (Base)",
|
||||
"description": "Vega / Lucide / Inter",
|
||||
"base": "base",
|
||||
"style": "vega",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-nova",
|
||||
"title": "Nova (Aria)",
|
||||
"description": "Nova / Lucide / Geist",
|
||||
"base": "aria",
|
||||
"style": "nova",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "geist",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-maia",
|
||||
"title": "Maia (Aria)",
|
||||
"description": "Maia / Hugeicons / Figtree",
|
||||
"base": "aria",
|
||||
"style": "maia",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"font": "figtree",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-lyra",
|
||||
"title": "Lyra (Aria)",
|
||||
"description": "Lyra / Tabler / JetBrains Mono",
|
||||
"base": "aria",
|
||||
"style": "lyra",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "phosphor",
|
||||
"font": "jetbrains-mono",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-mira",
|
||||
"title": "Mira (Aria)",
|
||||
"description": "Mira / Hugeicons / Inter",
|
||||
"base": "aria",
|
||||
"style": "mira",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-luma",
|
||||
"title": "Luma (Aria)",
|
||||
"description": "Luma / Lucide / Inter",
|
||||
"base": "aria",
|
||||
"style": "luma",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-rhea",
|
||||
"title": "Rhea (Radix)",
|
||||
"description": "Rhea / Lucide / Inter",
|
||||
"base": "radix",
|
||||
"style": "rhea",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-rhea",
|
||||
"title": "Rhea (Base)",
|
||||
"description": "Rhea / Lucide / Inter",
|
||||
"base": "base",
|
||||
"style": "rhea",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-rhea",
|
||||
"title": "Rhea (Aria)",
|
||||
"description": "Rhea / Lucide / Inter",
|
||||
"base": "aria",
|
||||
"style": "rhea",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"chartColor": "neutral",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "inter",
|
||||
"fontHeading": "inherit",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "radix-sera",
|
||||
"title": "Sera (Radix)",
|
||||
"description": "Sera / Lucide / Noto Sans + Playfair Display",
|
||||
"base": "radix",
|
||||
"style": "sera",
|
||||
"baseColor": "taupe",
|
||||
"theme": "taupe",
|
||||
"chartColor": "taupe",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "noto-sans",
|
||||
"fontHeading": "playfair-display",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "base-sera",
|
||||
"title": "Sera (Base)",
|
||||
"description": "Sera / Lucide / Noto Sans + Playfair Display",
|
||||
"base": "base",
|
||||
"style": "sera",
|
||||
"baseColor": "taupe",
|
||||
"theme": "taupe",
|
||||
"chartColor": "taupe",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "noto-sans",
|
||||
"fontHeading": "playfair-display",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
},
|
||||
{
|
||||
"name": "aria-sera",
|
||||
"title": "Sera (Aria)",
|
||||
"description": "Sera / Lucide / Noto Sans + Playfair Display",
|
||||
"base": "aria",
|
||||
"style": "sera",
|
||||
"baseColor": "taupe",
|
||||
"theme": "taupe",
|
||||
"chartColor": "taupe",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "noto-sans",
|
||||
"fontHeading": "playfair-display",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
"menuAccent": "subtle",
|
||||
"menuColor": "default",
|
||||
"radius": "default"
|
||||
}
|
||||
]
|
||||
}
|
||||
1356
apps/v4/public/r/icons/index.json
Normal file
1356
apps/v4/public/r/icons/index.json
Normal file
File diff suppressed because it is too large
Load Diff
1708
apps/v4/public/r/index.json
Normal file
1708
apps/v4/public/r/index.json
Normal file
File diff suppressed because it is too large
Load Diff
137
apps/v4/public/r/registries-legacy.json
Normal file
137
apps/v4/public/r/registries-legacy.json
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"@8bitcn": "https://8bitcn.com/r/{name}.json",
|
||||
"@8starlabs-ui": "https://ui.8starlabs.com/r/{name}.json",
|
||||
"@97cn": "https://97cn.itzik.co/r/{name}.json",
|
||||
"@abstract": "https://build.abs.xyz/r/{name}/json",
|
||||
"@abui": "https://abui.io/r/{name}.json",
|
||||
"@aceternity": "https://ui.aceternity.com/registry/{name}.json",
|
||||
"@aevr": "https://ui.aevr.space/r/{name}.json",
|
||||
"@ai-blocks": "https://webllm.org/r/{name}.json",
|
||||
"@ai-elements": "https://registry.ai-sdk.dev/{name}.json",
|
||||
"@alexcarpenter": "https://ui.alexcarpenter.me/r/{name}.json",
|
||||
"@algolia": "https://sitesearch.algolia.com/r/{name}.json",
|
||||
"@alpine": "https://alpine-registry.vercel.app/r/{name}.json",
|
||||
"@aliimam": "https://aliimam.in/r/{name}.json",
|
||||
"@animate-ui": "https://animate-ui.com/r/{name}.json",
|
||||
"@assistant-ui": "https://r.assistant-ui.com/{name}.json",
|
||||
"@austin-ui": "https://austin-ui.netlify.app/r/{name}.json",
|
||||
"@basecn": "https://basecn.dev/r/{name}.json",
|
||||
"@better-upload": "https://better-upload.com/r/{name}.json",
|
||||
"@billingsdk": "https://billingsdk.com/r/{name}.json",
|
||||
"@blocks-so": "https://blocks.so/r/{name}.json",
|
||||
"@bucharitesh": "https://bucharitesh.in/r/{name}.json",
|
||||
"@bundui": "https://bundui.io/r/{name}.json",
|
||||
"@cardcn": "https://cardcn.dev/r/{name}.json",
|
||||
"@chamaac": "https://chamaac.com/r/{name}.json",
|
||||
"@clerk": "https://clerk.com/r/{name}.json",
|
||||
"@coss": "https://coss.com/ui/r/{name}.json",
|
||||
"@commercn": "https://commercn.com/r/{name}.json",
|
||||
"@chisom-ui": "https://chisom-ui.netlify.app/r/{name}.json",
|
||||
"@creative-tim": "https://www.creative-tim.com/ui/r/{name}.json",
|
||||
"@cult-ui": "https://cult-ui.com/r/{name}.json",
|
||||
"@diceui": "https://diceui.com/r/{name}.json",
|
||||
"@doras-ui": "https://ui.doras.to/r/{name}.json",
|
||||
"@efferd": "https://efferd.com/r/{name}.json",
|
||||
"@einui": "https://ui.eindev.ir/r/{name}.json",
|
||||
"@eldoraui": "https://eldoraui.site/r/{name}.json",
|
||||
"@elements": "https://tryelements.dev/r/{name}.json",
|
||||
"@elevenlabs-ui": "https://ui.elevenlabs.io/r/{name}.json",
|
||||
"@fancy": "https://fancycomponents.dev/r/{name}.json",
|
||||
"@formcn": "https://formcn.dev/r/{name}.json",
|
||||
"@gaia": "https://ui.heygaia.io/r/{name}.json",
|
||||
"@glass-ui": "https://glass-ui.crenspire.com/r/{name}.json",
|
||||
"@heseui": "https://www.heseui.com/r/{name}.json",
|
||||
"@shadcnhooks": "https://shadcn-hooks.com/r/{name}.json",
|
||||
"@intentui": "https://intentui.com/r/{name}",
|
||||
"@kibo-ui": "https://www.kibo-ui.com/r/{name}.json",
|
||||
"@kanpeki": "https://kanpeki.vercel.app/r/{name}.json",
|
||||
"@kokonutui": "https://kokonutui.com/r/{name}.json",
|
||||
"@lens-blocks": "https://lensblocks.com/r/{name}.json",
|
||||
"@limeplay": "https://limeplay.winoffrg.dev/r/{name}.json",
|
||||
"@lucide-animated": "https://lucide-animated.com/r/{name}.json",
|
||||
"@lytenyte": "https://www.1771technologies.com/r/{name}.json",
|
||||
"@marmelab": "https://marmelab.com/shadcn-admin-kit/r/{name}.json",
|
||||
"@magicui": "https://magicui.design/r/{name}.json",
|
||||
"@magicui-pro": "https://pro.magicui.design/registry/{name}",
|
||||
"@motion-primitives": "https://motion-primitives.com/c/{name}.json",
|
||||
"@manifest": "https://ui.manifest.build/r/{name}.json",
|
||||
"@mui-treasury": "https://mui-treasury.com/r/{name}.json",
|
||||
"@nativeui": "https://nativeui.io/registry/{name}.json",
|
||||
"@nexus-elements": "https://elements.nexus.availproject.org/r/{name}.json",
|
||||
"@ncdai": "https://chanhdai.com/r/{name}.json",
|
||||
"@neobrutalism": "https://www.neobrutalism.dev/r/{name}.json",
|
||||
"@nuqs": "https://nuqs.dev/r/{name}.json",
|
||||
"@optics": "https://optics.agusmayol.com.ar/r/{name}.json",
|
||||
"@oui": "https://oui.mw10013.workers.dev/r/{name}.json",
|
||||
"@paceui": "https://ui.paceui.com/r/{name}.json",
|
||||
"@plate": "https://platejs.org/r/{name}.json",
|
||||
"@prompt-kit": "https://prompt-kit.com/c/{name}.json",
|
||||
"@prosekit": "https://prosekit.dev/r/{name}.json",
|
||||
"@phucbm": "https://phucbm.com/r/{name}.json",
|
||||
"@react-aria": "https://react-aria.adobe.com/registry/{name}.json",
|
||||
"@react-bits": "https://reactbits.dev/r/{name}.json",
|
||||
"@react-market": "https://www.react-market.com/get/{name}.json",
|
||||
"@retroui": "https://retroui.dev/r/{name}.json",
|
||||
"@reui": "https://reui.io/r/{name}.json",
|
||||
"@rigidui": "https://rigidui.com/r/{name}.json",
|
||||
"@roiui": "https://roiui.com/r/{name}.json",
|
||||
"@solaceui": "https://www.solaceui.com/r/{name}.json",
|
||||
"@scrollxui": "https://www.scrollxui.dev/registry/{name}.json",
|
||||
"@systaliko-ui": "https://systaliko-ui.vercel.app/r/{name}.json",
|
||||
"@shadcn-editor": "https://shadcn-editor.vercel.app/r/{name}.json",
|
||||
"@shadcn-map": "http://shadcn-map.vercel.app/r/{name}.json",
|
||||
"@shadcn-studio": "https://shadcnstudio.com/r/{name}.json",
|
||||
"@shadcnblocks": "https://shadcnblocks.com/r/{name}.json",
|
||||
"@shadcnui-blocks": "https://shadcnui-blocks.com/r/{name}.json",
|
||||
"@shadcraft": "https://shadcraft-free.vercel.app/r/{name}.json",
|
||||
"@simple-ai": "https://simple-ai.dev/r/{name}.json",
|
||||
"@skiper-ui": "https://skiper-ui.com/registry/{name}.json",
|
||||
"@skyr": "https://ui-play.skyroc.me/r/{name}.json",
|
||||
"@smoothui": "https://smoothui.dev/r/{name}.json",
|
||||
"@spectrumui": "https://ui.spectrumhq.in/r/{name}.json",
|
||||
"@supabase": "https://supabase.com/ui/r/{name}.json",
|
||||
"@svgl": "https://svgl.app/r/{name}.json",
|
||||
"@tailark": "https://tailark.com/r/{name}.json",
|
||||
"@tailwind-admin": "https://tailwind-admin.com/r/{name}.json",
|
||||
"@tailwind-builder": "https://tailwindbuilder.ai/r/{name}.json",
|
||||
"@tweakcn": "https://tweakcn.com/r/themes/{name}.json",
|
||||
"@wds": "https://wds-shadcn-registry.netlify.app/r/{name}.json",
|
||||
"@animbits": "https://animbits.dev/r/{name}.json",
|
||||
"@wandry-ui": "https://ui.wandry.com.ua/r/{name}.json",
|
||||
"@wigggle-ui": "https://wigggle-ui.vercel.app/r/{name}.json",
|
||||
"@paykit-sdk": "https://www.usepaykit.dev/r/{name}.json",
|
||||
"@pixelact-ui": "https://www.pixelactui.com/r/{name}.json",
|
||||
"@zippystarter": "https://zippystarter.com/r/{name}.json",
|
||||
"@shadcndesign": "https://shadcndesign-free.vercel.app/r/{name}.json",
|
||||
"@ha-components": "https://hacomponents.keshuac.com/r/{name}.json",
|
||||
"@shadix-ui": "https://shadix-ui.vercel.app/r/{name}.json",
|
||||
"@utilcn": "https://utilcn.dev/r/{name}.json",
|
||||
"@hextaui": "https://hextaui.com/r/{name}.json",
|
||||
"@taki": "https://taki-ui.com/r/{name}.json",
|
||||
"@square-ui": "https://square.lndev.me/registry/{name}.json",
|
||||
"@moleculeui": "https://moleculeui.design/r/{name}.json",
|
||||
"@uicapsule": "https://uicapsule.com/r/{name}.json",
|
||||
"@uitripled": "https://ui.tripled.work/r/{name}.json",
|
||||
"@ui-layouts": "https://ui-layouts.com/r/{name}.json",
|
||||
"@pureui": "https://pure.kam-ui.com/r/{name}.json",
|
||||
"@tour": "https://onboarding-tour.vercel.app/r/{name}.json",
|
||||
"@tb-blocks": "https://tailwindbuilder.ai/r/blocks/{name}.json",
|
||||
"@heroicons-animated": "https://www.heroicons-animated.com/r/{name}.json",
|
||||
"@icons-animated": "https://icons.lndev.me/r/{name}.json",
|
||||
"@forgeui": "https://forgeui.in/r/{name}.json",
|
||||
"@darx": "https://darshitdev.in/r/{name}.json",
|
||||
"@gamifykit": "https://gamifykit.com/r/{name}.json",
|
||||
"@beste-ui": "https://ui.beste.co/r/{name}.json",
|
||||
"@tokenui": "https://www.tokenui.dev/r/{name}.json",
|
||||
"@lumiui": "https://www.lumiui.dev/r/{name}.json",
|
||||
"@uselayouts": "https://uselayouts.com/r/{name}.json",
|
||||
"@joyco": "https://registry.joyco.studio/r/{name}.json",
|
||||
"@gooseui": "https://gooseui.pro/r/{name}.json",
|
||||
"@baselayer": "https://www.baselayer.dev/r/{name}.json",
|
||||
"@jolyui": "https://www.jolyui.dev/r/{name}.json",
|
||||
"@fab-ui": "https://fab-ui.com/r/{name}.json",
|
||||
"@asanshay": "https://ds.asanshay.com/r/{name}.json",
|
||||
"@headcodecms": "https://headcodecms.com/r/{name}.json",
|
||||
"@typedora-ui": "https://typedora-ui.netlify.app/r/{name}.json",
|
||||
"@agents-ui": "https://livekit.io/ui/r/{name}.json"
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/accordion-demo.json
Normal file
17
apps/v4/public/r/styles/default/accordion-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "accordion-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"accordion"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/accordion-demo.tsx",
|
||||
"content": "import {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/registry/default/ui/accordion\"\n\nexport default function AccordionDemo() {\n return (\n <Accordion type=\"single\" collapsible className=\"w-full\">\n <AccordionItem value=\"item-1\">\n <AccordionTrigger>Is it accessible?</AccordionTrigger>\n <AccordionContent>\n Yes. It adheres to the WAI-ARIA design pattern.\n </AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-2\">\n <AccordionTrigger>Is it styled?</AccordionTrigger>\n <AccordionContent>\n Yes. It comes with default styles that matches the other\n components' aesthetic.\n </AccordionContent>\n </AccordionItem>\n <AccordionItem value=\"item-3\">\n <AccordionTrigger>Is it animated?</AccordionTrigger>\n <AccordionContent>\n Yes. It's animated by default, but you can disable it if you\n prefer.\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
47
apps/v4/public/r/styles/default/accordion.json
Normal file
47
apps/v4/public/r/styles/default/accordion.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "accordion",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-accordion"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/accordion.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n))\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"tailwind": {
|
||||
"config": {
|
||||
"theme": {
|
||||
"extend": {
|
||||
"keyframes": {
|
||||
"accordion-down": {
|
||||
"from": {
|
||||
"height": "0"
|
||||
},
|
||||
"to": {
|
||||
"height": "var(--radix-accordion-content-height)"
|
||||
}
|
||||
},
|
||||
"accordion-up": {
|
||||
"from": {
|
||||
"height": "var(--radix-accordion-content-height)"
|
||||
},
|
||||
"to": {
|
||||
"height": "0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation": {
|
||||
"accordion-down": "accordion-down 0.2s ease-out",
|
||||
"accordion-up": "accordion-up 0.2s ease-out"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/alert-demo.json
Normal file
17
apps/v4/public/r/styles/default/alert-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "alert-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"alert"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/alert-demo.tsx",
|
||||
"content": "import { Terminal } from \"lucide-react\"\n\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n} from \"@/registry/default/ui/alert\"\n\nexport default function AlertDemo() {\n return (\n <Alert>\n <Terminal className=\"h-4 w-4\" />\n <AlertTitle>Heads up!</AlertTitle>\n <AlertDescription>\n You can add components to your app using the cli.\n </AlertDescription>\n </Alert>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/alert-destructive.json
Normal file
17
apps/v4/public/r/styles/default/alert-destructive.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "alert-destructive",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"alert"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/alert-destructive.tsx",
|
||||
"content": "import { AlertCircle } from \"lucide-react\"\n\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n} from \"@/registry/default/ui/alert\"\n\nexport default function AlertDestructive() {\n return (\n <Alert variant=\"destructive\">\n <AlertCircle className=\"h-4 w-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Your session has expired. Please log in again.\n </AlertDescription>\n </Alert>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
18
apps/v4/public/r/styles/default/alert-dialog-demo.json
Normal file
18
apps/v4/public/r/styles/default/alert-dialog-demo.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "alert-dialog-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"alert-dialog",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/alert-dialog-demo.tsx",
|
||||
"content": "import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@/registry/default/ui/alert-dialog\"\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport default function AlertDialogDemo() {\n return (\n <AlertDialog>\n <AlertDialogTrigger asChild>\n <Button variant=\"outline\">Show Dialog</Button>\n </AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n <AlertDialogDescription>\n This action cannot be undone. This will permanently delete your\n account and remove your data from our servers.\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>Cancel</AlertDialogCancel>\n <AlertDialogAction>Continue</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
20
apps/v4/public/r/styles/default/alert-dialog.json
Normal file
20
apps/v4/public/r/styles/default/alert-dialog.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "alert-dialog",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-alert-dialog"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/alert-dialog.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/registry/default/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
14
apps/v4/public/r/styles/default/alert.json
Normal file
14
apps/v4/public/r/styles/default/alert.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "alert",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/alert.tsx",
|
||||
"content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/aspect-ratio-demo.json
Normal file
17
apps/v4/public/r/styles/default/aspect-ratio-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "aspect-ratio-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"aspect-ratio"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/aspect-ratio-demo.tsx",
|
||||
"content": "import Image from \"next/image\"\n\nimport { AspectRatio } from \"@/registry/default/ui/aspect-ratio\"\n\nexport default function AspectRatioDemo() {\n return (\n <AspectRatio ratio={16 / 9} className=\"bg-muted\">\n <Image\n src=\"https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800&dpr=2&q=80\"\n alt=\"Photo by Drew Beamer\"\n fill\n className=\"h-full w-full rounded-md object-cover\"\n />\n </AspectRatio>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/aspect-ratio.json
Normal file
17
apps/v4/public/r/styles/default/aspect-ratio.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "aspect-ratio",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-aspect-ratio"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/aspect-ratio.tsx",
|
||||
"content": "\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/avatar-demo.json
Normal file
17
apps/v4/public/r/styles/default/avatar-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "avatar-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"avatar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/avatar-demo.tsx",
|
||||
"content": "import {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/default/ui/avatar\"\n\nexport default function AvatarDemo() {\n return (\n <Avatar>\n <AvatarImage src=\"https://github.com/shadcn.png\" alt=\"@shadcn\" />\n <AvatarFallback>CN</AvatarFallback>\n </Avatar>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/avatar.json
Normal file
17
apps/v4/public/r/styles/default/avatar.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "avatar",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-avatar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/avatar.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/badge-demo.json
Normal file
17
apps/v4/public/r/styles/default/badge-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "badge-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"badge"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/badge-demo.tsx",
|
||||
"content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport default function BadgeDemo() {\n return <Badge>Badge</Badge>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/badge-destructive.json
Normal file
17
apps/v4/public/r/styles/default/badge-destructive.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "badge-destructive",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"badge"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/badge-destructive.tsx",
|
||||
"content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport default function BadgeDestructive() {\n return <Badge variant=\"destructive\">Destructive</Badge>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/badge-outline.json
Normal file
17
apps/v4/public/r/styles/default/badge-outline.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "badge-outline",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"badge"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/badge-outline.tsx",
|
||||
"content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport default function BadgeOutline() {\n return <Badge variant=\"outline\">Outline</Badge>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/badge-secondary.json
Normal file
17
apps/v4/public/r/styles/default/badge-secondary.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "badge-secondary",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"badge"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/badge-secondary.tsx",
|
||||
"content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport default function BadgeSecondary() {\n return <Badge variant=\"secondary\">Secondary</Badge>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/badge.json
Normal file
17
apps/v4/public/r/styles/default/badge.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "badge",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-slot"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/badge.tsx",
|
||||
"content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb-demo.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"breadcrumb"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/breadcrumb-demo.tsx",
|
||||
"content": "import {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\n\nexport default function BreadcrumbDemo() {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <DropdownMenu>\n <DropdownMenuTrigger className=\"flex items-center gap-1\">\n <BreadcrumbEllipsis className=\"h-4 w-4\" />\n <span className=\"sr-only\">Toggle menu</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem>Documentation</DropdownMenuItem>\n <DropdownMenuItem>Themes</DropdownMenuItem>\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/docs/components\">Components</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb-dropdown.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb-dropdown.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb-dropdown",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"breadcrumb"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/breadcrumb-dropdown.tsx",
|
||||
"content": "import { ChevronDown, Slash } from \"lucide-react\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\n\nexport default function BreadcrumbWithDropdown() {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <Slash />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <DropdownMenu>\n <DropdownMenuTrigger className=\"flex items-center gap-1\">\n Components\n <ChevronDown className=\"h-4 w-4\" />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem>Documentation</DropdownMenuItem>\n <DropdownMenuItem>Themes</DropdownMenuItem>\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <Slash />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb-ellipsis.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb-ellipsis.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb-ellipsis",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"breadcrumb"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/breadcrumb-ellipsis.tsx",
|
||||
"content": "import Link from \"next/link\"\n\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\n\nexport default function BreadcrumbCollapsed() {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink asChild>\n <Link href=\"/\">Home</Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbEllipsis />\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink asChild>\n <Link href=\"/docs/components\">Components</Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb-link.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb-link.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb-link",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"breadcrumb"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/breadcrumb-link.tsx",
|
||||
"content": "import Link from \"next/link\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\n\nexport default function BreadcrumbWithCustomSeparator() {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink>\n <Link href=\"/\">Home</Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink>\n <Link href=\"/components\">Components</Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb-responsive.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb-responsive.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb-responsive",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"breadcrumb"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/breadcrumb-responsive.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\n\nimport { useMediaQuery } from \"@/hooks/use-media-query\"\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/default/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\n\nconst items = [\n { href: \"#\", label: \"Home\" },\n { href: \"#\", label: \"Documentation\" },\n { href: \"#\", label: \"Building Your Application\" },\n { href: \"#\", label: \"Data Fetching\" },\n { label: \"Caching and Revalidating\" },\n]\n\nconst ITEMS_TO_DISPLAY = 3\n\nexport default function BreadcrumbResponsive() {\n const [open, setOpen] = React.useState(false)\n const isDesktop = useMediaQuery(\"(min-width: 768px)\")\n\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href={items[0].href}>{items[0].label}</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n {items.length > ITEMS_TO_DISPLAY ? (\n <>\n <BreadcrumbItem>\n {isDesktop ? (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger\n className=\"flex items-center gap-1\"\n aria-label=\"Toggle menu\"\n >\n <BreadcrumbEllipsis className=\"h-4 w-4\" />\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n {items.slice(1, -2).map((item, index) => (\n <DropdownMenuItem key={index}>\n <Link href={item.href ? item.href : \"#\"}>\n {item.label}\n </Link>\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n ) : (\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger aria-label=\"Toggle Menu\">\n <BreadcrumbEllipsis className=\"h-4 w-4\" />\n </DrawerTrigger>\n <DrawerContent>\n <DrawerHeader className=\"text-left\">\n <DrawerTitle>Navigate to</DrawerTitle>\n <DrawerDescription>\n Select a page to navigate to.\n </DrawerDescription>\n </DrawerHeader>\n <div className=\"grid gap-1 px-4\">\n {items.slice(1, -2).map((item, index) => (\n <Link\n key={index}\n href={item.href ? item.href : \"#\"}\n className=\"py-1 text-sm\"\n >\n {item.label}\n </Link>\n ))}\n </div>\n <DrawerFooter className=\"pt-4\">\n <DrawerClose asChild>\n <Button variant=\"outline\">Close</Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n )}\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n </>\n ) : null}\n {items.slice(-ITEMS_TO_DISPLAY + 1).map((item, index) => (\n <BreadcrumbItem key={index}>\n {item.href ? (\n <>\n <BreadcrumbLink\n asChild\n className=\"max-w-20 truncate md:max-w-none\"\n >\n <Link href={item.href}>{item.label}</Link>\n </BreadcrumbLink>\n <BreadcrumbSeparator />\n </>\n ) : (\n <BreadcrumbPage className=\"max-w-20 truncate md:max-w-none\">\n {item.label}\n </BreadcrumbPage>\n )}\n </BreadcrumbItem>\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb-separator.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb-separator.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb-separator",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"breadcrumb"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/breadcrumb-separator.tsx",
|
||||
"content": "import { Slash } from \"lucide-react\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\n\nexport default function BreadcrumbWithCustomSeparator() {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <Slash />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/components\">Components</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <Slash />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/breadcrumb.json
Normal file
17
apps/v4/public/r/styles/default/breadcrumb.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "breadcrumb",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-slot"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/breadcrumb.tsx",
|
||||
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = \"Breadcrumb\"\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n))\nBreadcrumbList.displayName = \"BreadcrumbList\"\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n))\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n))\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\"\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-as-child.json
Normal file
17
apps/v4/public/r/styles/default/button-as-child.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-as-child",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-as-child.tsx",
|
||||
"content": "import Link from \"next/link\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonAsChild() {\n return (\n <Button asChild>\n <Link href=\"/login\">Login</Link>\n </Button>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-demo.json
Normal file
17
apps/v4/public/r/styles/default/button-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-demo.tsx",
|
||||
"content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonDemo() {\n return <Button>Button</Button>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-destructive.json
Normal file
17
apps/v4/public/r/styles/default/button-destructive.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-destructive",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-destructive.tsx",
|
||||
"content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonDestructive() {\n return <Button variant=\"destructive\">Destructive</Button>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-ghost.json
Normal file
17
apps/v4/public/r/styles/default/button-ghost.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-ghost",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-ghost.tsx",
|
||||
"content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonGhost() {\n return <Button variant=\"ghost\">Ghost</Button>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
18
apps/v4/public/r/styles/default/button-group.json
Normal file
18
apps/v4/public/r/styles/default/button-group.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-group",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button",
|
||||
"separator"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/button-group.tsx",
|
||||
"content": "import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/registry/default/ui/separator\"\n\nconst buttonGroupVariants = cva(\n \"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\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-muted shadow-xs flex items-center gap-2 rounded-md border px-4 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-icon.json
Normal file
17
apps/v4/public/r/styles/default/button-icon.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-icon",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-icon.tsx",
|
||||
"content": "import { ChevronRight } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonIcon() {\n return (\n <Button variant=\"outline\" size=\"icon\">\n <ChevronRight />\n </Button>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-link.json
Normal file
17
apps/v4/public/r/styles/default/button-link.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-link",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-link.tsx",
|
||||
"content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonLink() {\n return <Button variant=\"link\">Link</Button>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-loading.json
Normal file
17
apps/v4/public/r/styles/default/button-loading.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-loading",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-loading.tsx",
|
||||
"content": "import { Loader2 } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonLoading() {\n return (\n <Button disabled>\n <Loader2 className=\"animate-spin\" />\n Please wait\n </Button>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-outline.json
Normal file
17
apps/v4/public/r/styles/default/button-outline.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-outline",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-outline.tsx",
|
||||
"content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonOutline() {\n return <Button variant=\"outline\">Outline</Button>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-secondary.json
Normal file
17
apps/v4/public/r/styles/default/button-secondary.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-secondary",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-secondary.tsx",
|
||||
"content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonSecondary() {\n return <Button variant=\"secondary\">Secondary</Button>\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button-with-icon.json
Normal file
17
apps/v4/public/r/styles/default/button-with-icon.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button-with-icon",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/button-with-icon.tsx",
|
||||
"content": "import { Mail } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport default function ButtonWithIcon() {\n return (\n <Button>\n <Mail /> Login with Email\n </Button>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/button.json
Normal file
17
apps/v4/public/r/styles/default/button.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "button",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"dependencies": [
|
||||
"@radix-ui/react-slot"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/button.tsx",
|
||||
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-01.json
Normal file
27
apps/v4/public/r/styles/default/calendar-01.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-01",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "A simple calendar.",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-01.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar01() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-02.json
Normal file
27
apps/v4/public/r/styles/default/calendar-02.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-02",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Multiple months with single selection.",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-02.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar02() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n numberOfMonths={2}\n selected={date}\n onSelect={setDate}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-03.json
Normal file
27
apps/v4/public/r/styles/default/calendar-03.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-03",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Multiple months with multiple selection.",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-03.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar03() {\n const [dates, setDates] = React.useState<Date[]>([\n new Date(2025, 5, 12),\n new Date(2025, 6, 24),\n ])\n\n return (\n <Calendar\n mode=\"multiple\"\n numberOfMonths={2}\n defaultMonth={dates[0]}\n required\n selected={dates}\n onSelect={setDates}\n max={5}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-04.json
Normal file
27
apps/v4/public/r/styles/default/calendar-04.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-04",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Single month with range selection",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-04.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar04() {\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 9),\n to: new Date(2025, 5, 26),\n })\n\n return (\n <Calendar\n mode=\"range\"\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0 xl:pt-28",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-05.json
Normal file
27
apps/v4/public/r/styles/default/calendar-05.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-05",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Multiple months with range selection",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-05.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar05() {\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 12),\n to: new Date(2025, 6, 15),\n })\n\n return (\n <Calendar\n mode=\"range\"\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={2}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-06.json
Normal file
27
apps/v4/public/r/styles/default/calendar-06.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-06",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Range selection with minimum days",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-06.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar06() {\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 12),\n to: new Date(2025, 5, 26),\n })\n\n return (\n <div className=\"flex min-w-0 flex-col gap-2\">\n <Calendar\n mode=\"range\"\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={1}\n min={5}\n className=\"rounded-lg border shadow-sm\"\n />\n <div className=\"text-muted-foreground text-center text-xs\">\n A minimum of 5 days is required\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-07.json
Normal file
27
apps/v4/public/r/styles/default/calendar-07.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-07",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Range selection with minimum and maximum days",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-07.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar07() {\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 18),\n to: new Date(2025, 6, 7),\n })\n\n return (\n <div className=\"flex min-w-0 flex-col gap-2\">\n <Calendar\n mode=\"range\"\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={2}\n min={2}\n max={20}\n className=\"rounded-lg border shadow-sm\"\n />\n <div className=\"text-muted-foreground text-center text-xs\">\n Your stay must be between 2 and 20 nights\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-08.json
Normal file
27
apps/v4/public/r/styles/default/calendar-08.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-08",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Calendar with disabled days",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-08.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar08() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n disabled={{\n before: new Date(2025, 5, 12),\n }}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-09.json
Normal file
27
apps/v4/public/r/styles/default/calendar-09.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-09",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Calendar with disabled weekends",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-09.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar09() {\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 17),\n to: new Date(2025, 5, 20),\n })\n\n return (\n <Calendar\n mode=\"range\"\n defaultMonth={dateRange?.from}\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={2}\n disabled={{ dayOfWeek: [0, 6] }}\n className=\"rounded-lg border shadow-sm\"\n excludeDisabled\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
29
apps/v4/public/r/styles/default/calendar-10.json
Normal file
29
apps/v4/public/r/styles/default/calendar-10.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-10",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Today button",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-10.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\n\nexport default function Calendar10() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n const [month, setMonth] = React.useState<Date | undefined>(new Date())\n\n return (\n <Card>\n <CardHeader className=\"relative\">\n <CardTitle>Appointment</CardTitle>\n <CardDescription>Find a date</CardDescription>\n <Button\n size=\"sm\"\n variant=\"outline\"\n className=\"absolute right-4 top-4\"\n onClick={() => {\n setMonth(new Date())\n setDate(new Date())\n }}\n >\n Today\n </Button>\n </CardHeader>\n <CardContent>\n <Calendar\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={setDate}\n className=\"bg-transparent p-0\"\n />\n </CardContent>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-11.json
Normal file
27
apps/v4/public/r/styles/default/calendar-11.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-11",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Start and end of month",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-11.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar11() {\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 17),\n to: new Date(2025, 5, 20),\n })\n\n return (\n <div className=\"flex min-w-0 flex-col gap-2\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={setDateRange}\n numberOfMonths={2}\n startMonth={new Date(2025, 5, 1)}\n endMonth={new Date(2025, 6, 31)}\n disableNavigation\n className=\"rounded-lg border shadow-sm\"\n />\n <div className=\"text-muted-foreground text-center text-xs\">\n We are open in June and July only.\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
29
apps/v4/public/r/styles/default/calendar-12.json
Normal file
29
apps/v4/public/r/styles/default/calendar-12.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-12",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Localized calendar",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"select"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-12.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DateRange } from \"react-day-picker\"\nimport { enUS, es } from \"react-day-picker/locale\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\n\nconst localizedStrings = {\n en: {\n title: \"Book an appointment\",\n description: \"Select the dates for your appointment\",\n },\n es: {\n title: \"Reserva una cita\",\n description: \"Selecciona las fechas para tu cita\",\n },\n} as const\n\nexport default function Calendar12() {\n const [locale, setLocale] =\n React.useState<keyof typeof localizedStrings>(\"es\")\n const [dateRange, setDateRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 8, 9),\n to: new Date(2025, 8, 17),\n })\n\n return (\n <Card>\n <CardHeader className=\"relative border-b\">\n <CardTitle>{localizedStrings[locale].title}</CardTitle>\n <CardDescription>\n {localizedStrings[locale].description}\n </CardDescription>\n <Select\n value={locale}\n onValueChange={(value) =>\n setLocale(value as keyof typeof localizedStrings)\n }\n >\n <SelectTrigger className=\"absolute right-4 top-4 w-[100px]\">\n <SelectValue placeholder=\"Language\" />\n </SelectTrigger>\n <SelectContent align=\"end\">\n <SelectItem value=\"es\">Español</SelectItem>\n <SelectItem value=\"en\">English</SelectItem>\n </SelectContent>\n </Select>\n </CardHeader>\n <CardContent className=\"pt-4\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={setDateRange}\n defaultMonth={dateRange?.from}\n numberOfMonths={2}\n locale={locale === \"es\" ? es : enUS}\n className=\"bg-transparent p-0\"\n buttonVariant=\"outline\"\n />\n </CardContent>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
29
apps/v4/public/r/styles/default/calendar-13.json
Normal file
29
apps/v4/public/r/styles/default/calendar-13.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-13",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With Month and Year Dropdown",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"label",
|
||||
"select"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-13.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\n\nexport default function Calendar13() {\n const [dropdown, setDropdown] =\n React.useState<React.ComponentProps<typeof Calendar>[\"captionLayout\"]>(\n \"dropdown\"\n )\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <div className=\"flex flex-col gap-4\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n captionLayout={dropdown}\n className=\"rounded-lg border shadow-sm\"\n />\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"dropdown\" className=\"px-1\">\n Dropdown\n </Label>\n <Select\n value={dropdown}\n onValueChange={(value) =>\n setDropdown(\n value as React.ComponentProps<typeof Calendar>[\"captionLayout\"]\n )\n }\n >\n <SelectTrigger id=\"dropdown\" className=\"bg-background w-full\">\n <SelectValue placeholder=\"Dropdown\" />\n </SelectTrigger>\n <SelectContent align=\"center\">\n <SelectItem value=\"dropdown\">Month and Year</SelectItem>\n <SelectItem value=\"dropdown-months\">Month Only</SelectItem>\n <SelectItem value=\"dropdown-years\">Year Only</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-14.json
Normal file
27
apps/v4/public/r/styles/default/calendar-14.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-14",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With Booked/Unavailable Days",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-14.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar14() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n const bookedDates = Array.from(\n { length: 12 },\n (_, i) => new Date(2025, 5, 15 + i)\n )\n\n return (\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n disabled={bookedDates}\n modifiers={{\n booked: bookedDates,\n }}\n modifiersClassNames={{\n booked: \"[&>button]:line-through opacity-100\",\n }}\n className=\"rounded-lg border shadow-sm\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-15.json
Normal file
27
apps/v4/public/r/styles/default/calendar-15.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-15",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With Week Numbers",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-15.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar15() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={setDate}\n className=\"rounded-lg border shadow-sm\"\n showWeekNumber\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
30
apps/v4/public/r/styles/default/calendar-16.json
Normal file
30
apps/v4/public/r/styles/default/calendar-16.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-16",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With time picker",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"input",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-16.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Clock2Icon } from \"lucide-react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Card, CardContent, CardFooter } from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport default function Calendar16() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Card className=\"w-fit py-4\">\n <CardContent className=\"px-4\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n className=\"bg-transparent p-0\"\n />\n </CardContent>\n <CardFooter className=\"flex flex-col gap-6 border-t px-4 pb-0 pt-4\">\n <div className=\"flex w-full flex-col gap-3\">\n <Label htmlFor=\"time-from\">Start Time</Label>\n <div className=\"relative flex w-full items-center gap-2\">\n <Clock2Icon className=\"text-muted-foreground pointer-events-none absolute left-2.5 size-4 select-none\" />\n <Input\n id=\"time-from\"\n type=\"time\"\n step=\"1\"\n defaultValue=\"10:30:00\"\n className=\"appearance-none pl-8 [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </div>\n <div className=\"flex w-full flex-col gap-3\">\n <Label htmlFor=\"time-to\">End Time</Label>\n <div className=\"relative flex w-full items-center gap-2\">\n <Clock2Icon className=\"text-muted-foreground pointer-events-none absolute left-2.5 size-4 select-none\" />\n <Input\n id=\"time-to\"\n type=\"time\"\n step=\"1\"\n defaultValue=\"12:30:00\"\n className=\"appearance-none pl-8 [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
30
apps/v4/public/r/styles/default/calendar-17.json
Normal file
30
apps/v4/public/r/styles/default/calendar-17.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-17",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With time picker inline",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"input",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-17.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Card, CardContent, CardFooter } from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport default function Calendar17() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Card className=\"w-fit py-4\">\n <CardContent className=\"px-4\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n className=\"bg-transparent p-0 [--cell-size:2.8rem]\"\n />\n </CardContent>\n <CardFooter className=\"*:[div]:w-full flex gap-2 border-t px-4 pb-0 pt-4\">\n <div className=\"flex-1\">\n <Label htmlFor=\"time-from\" className=\"sr-only\">\n Start Time\n </Label>\n <Input\n id=\"time-from\"\n type=\"time\"\n step=\"1\"\n defaultValue=\"10:30:00\"\n className=\"appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n <span>-</span>\n <div className=\"flex-1\">\n <Label htmlFor=\"time-to\" className=\"sr-only\">\n End Time\n </Label>\n <Input\n id=\"time-to\"\n type=\"time\"\n step=\"1\"\n defaultValue=\"12:30:00\"\n className=\"appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-18.json
Normal file
27
apps/v4/public/r/styles/default/calendar-18.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-18",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Variable size",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-18.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar18() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n className=\"rounded-lg border [--cell-size:2.75rem] md:[--cell-size:3rem]\"\n buttonVariant=\"ghost\"\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
33
apps/v4/public/r/styles/default/calendar-19.json
Normal file
33
apps/v4/public/r/styles/default/calendar-19.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-19",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With presets",
|
||||
"dependencies": [
|
||||
"date-fns"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"input",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-19.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { addDays } from \"date-fns\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Card, CardContent, CardFooter } from \"@/registry/default/ui/card\"\n\nexport default function Calendar19() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Card className=\"max-w-[300px] py-4\">\n <CardContent className=\"px-4\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n defaultMonth={date}\n className=\"bg-transparent p-0 [--cell-size:2.375rem]\"\n />\n </CardContent>\n <CardFooter className=\"flex flex-wrap gap-2 border-t px-4 pb-0 pt-4\">\n {[\n { label: \"Today\", value: 0 },\n { label: \"Tomorrow\", value: 1 },\n { label: \"In 3 days\", value: 3 },\n { label: \"In a week\", value: 7 },\n { label: \"In 2 weeks\", value: 14 },\n ].map((preset) => (\n <Button\n key={preset.value}\n variant=\"outline\"\n size=\"sm\"\n className=\"flex-1\"\n onClick={() => {\n const newDate = addDays(new Date(), preset.value)\n setDate(newDate)\n }}\n >\n {preset.label}\n </Button>\n ))}\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
29
apps/v4/public/r/styles/default/calendar-20.json
Normal file
29
apps/v4/public/r/styles/default/calendar-20.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-20",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With time presets",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-20.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Card, CardContent, CardFooter } from \"@/registry/default/ui/card\"\n\nexport default function Calendar20() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n const [selectedTime, setSelectedTime] = React.useState<string | null>(\"10:00\")\n const timeSlots = Array.from({ length: 37 }, (_, i) => {\n const totalMinutes = i * 15\n const hour = Math.floor(totalMinutes / 60) + 9\n const minute = totalMinutes % 60\n return `${hour.toString().padStart(2, \"0\")}:${minute\n .toString()\n .padStart(2, \"0\")}`\n })\n\n const bookedDates = Array.from(\n { length: 3 },\n (_, i) => new Date(2025, 5, 17 + i)\n )\n\n return (\n <Card className=\"gap-0 p-0\">\n <CardContent className=\"relative p-0 md:pr-48\">\n <div className=\"p-6\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n defaultMonth={date}\n disabled={bookedDates}\n showOutsideDays={false}\n modifiers={{\n booked: bookedDates,\n }}\n modifiersClassNames={{\n booked: \"[&>button]:line-through opacity-100\",\n }}\n className=\"bg-transparent p-0 [--cell-size:2.5rem] md:[--cell-size:3rem]\"\n formatters={{\n formatWeekdayName: (date) => {\n return date.toLocaleString(\"en-US\", { weekday: \"short\" })\n },\n }}\n />\n </div>\n <div className=\"no-scrollbar inset-y-0 right-0 flex max-h-72 w-full scroll-pb-6 flex-col gap-4 overflow-y-auto border-t p-6 md:absolute md:max-h-none md:w-48 md:border-l md:border-t-0\">\n <div className=\"grid gap-2\">\n {timeSlots.map((time) => (\n <Button\n key={time}\n variant={selectedTime === time ? \"default\" : \"outline\"}\n onClick={() => setSelectedTime(time)}\n className=\"w-full shadow-none\"\n >\n {time}\n </Button>\n ))}\n </div>\n </div>\n </CardContent>\n <CardFooter className=\"flex flex-col gap-4 border-t !py-5 px-6 md:flex-row\">\n <div className=\"text-sm\">\n {date && selectedTime ? (\n <>\n Your meeting is booked for{\" \"}\n <span className=\"font-medium\">\n {\" \"}\n {date?.toLocaleDateString(\"en-US\", {\n weekday: \"long\",\n day: \"numeric\",\n month: \"long\",\n })}{\" \"}\n </span>\n at <span className=\"font-medium\">{selectedTime}</span>.\n </>\n ) : (\n <>Select a date and time for your meeting.</>\n )}\n </div>\n <Button\n disabled={!date || !selectedTime}\n className=\"w-full md:ml-auto md:w-auto\"\n variant=\"outline\"\n >\n Continue\n </Button>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
27
apps/v4/public/r/styles/default/calendar-21.json
Normal file
27
apps/v4/public/r/styles/default/calendar-21.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-21",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Custom days and formatters",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-21.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { DateRange } from \"react-day-picker\"\n\nimport { Calendar, CalendarDayButton } from \"@/registry/default/ui/calendar\"\n\nexport default function Calendar21() {\n const [range, setRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 12),\n to: new Date(2025, 5, 17),\n })\n\n return (\n <Calendar\n mode=\"range\"\n defaultMonth={range?.from}\n selected={range}\n onSelect={setRange}\n numberOfMonths={1}\n captionLayout=\"dropdown\"\n className=\"rounded-lg border shadow-sm [--cell-size:2.75rem] md:[--cell-size:3rem]\"\n formatters={{\n formatMonthDropdown: (date) => {\n return date.toLocaleString(\"default\", { month: \"long\" })\n },\n }}\n components={{\n DayButton: ({ children, modifiers, day, ...props }) => {\n const isWeekend = day.date.getDay() === 0 || day.date.getDay() === 6\n\n return (\n <CalendarDayButton day={day} modifiers={modifiers} {...props}>\n {children}\n {!modifiers.outside && <span>{isWeekend ? \"$220\" : \"$100\"}</span>}\n </CalendarDayButton>\n )\n },\n }}\n />\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
30
apps/v4/public/r/styles/default/calendar-22.json
Normal file
30
apps/v4/public/r/styles/default/calendar-22.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-22",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Date picker",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"popover",
|
||||
"button",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-22.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport default function Calendar22() {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(undefined)\n\n return (\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"date\" className=\"px-1\">\n Date of birth\n </Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"date\"\n className=\"w-48 justify-between font-normal\"\n >\n {date ? date.toLocaleDateString() : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto overflow-hidden p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n onSelect={(date) => {\n setDate(date)\n setOpen(false)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
30
apps/v4/public/r/styles/default/calendar-23.json
Normal file
30
apps/v4/public/r/styles/default/calendar-23.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-23",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Date range picker",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"popover",
|
||||
"button",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-23.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon } from \"lucide-react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport default function Calendar23() {\n const [range, setRange] = React.useState<DateRange | undefined>(undefined)\n\n return (\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"dates\" className=\"px-1\">\n Select your stay\n </Label>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"dates\"\n className=\"w-56 justify-between font-normal\"\n >\n {range?.from && range?.to\n ? `${range.from.toLocaleDateString()} - ${range.to.toLocaleDateString()}`\n : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto overflow-hidden p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={range}\n captionLayout=\"dropdown\"\n onSelect={(range) => {\n setRange(range)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
30
apps/v4/public/r/styles/default/calendar-24.json
Normal file
30
apps/v4/public/r/styles/default/calendar-24.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-24",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Date and Time picker",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"popover",
|
||||
"button",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-24.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport default function Calendar24() {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(undefined)\n\n return (\n <div className=\"flex gap-4\">\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"date\" className=\"px-1\">\n Date\n </Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"date\"\n className=\"w-32 justify-between font-normal\"\n >\n {date ? date.toLocaleDateString() : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto overflow-hidden p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n onSelect={(date) => {\n setDate(date)\n setOpen(false)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"time\" className=\"px-1\">\n Time\n </Label>\n <Input\n type=\"time\"\n id=\"time\"\n step=\"1\"\n defaultValue=\"10:30:00\"\n className=\"bg-background appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
30
apps/v4/public/r/styles/default/calendar-25.json
Normal file
30
apps/v4/public/r/styles/default/calendar-25.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-25",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Date and Time range picker",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"popover",
|
||||
"button",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-25.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport default function Calendar25() {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(undefined)\n\n return (\n <div className=\"flex flex-col gap-6\">\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"date\" className=\"px-1\">\n Date\n </Label>\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"date\"\n className=\"w-full justify-between font-normal\"\n >\n {date ? date.toLocaleDateString() : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto overflow-hidden p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n onSelect={(date) => {\n setDate(date)\n setOpen(false)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n <div className=\"flex gap-4\">\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"time-from\" className=\"px-1\">\n From\n </Label>\n <Input\n type=\"time\"\n id=\"time-from\"\n step=\"1\"\n defaultValue=\"10:30:00\"\n className=\"bg-background appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"time-to\" className=\"px-1\">\n To\n </Label>\n <Input\n type=\"time\"\n id=\"time-to\"\n step=\"1\"\n defaultValue=\"12:30:00\"\n className=\"bg-background appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
31
apps/v4/public/r/styles/default/calendar-26.json
Normal file
31
apps/v4/public/r/styles/default/calendar-26.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-26",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Date range picker with time",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"popover",
|
||||
"button",
|
||||
"input",
|
||||
"label"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-26.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport default function Calendar26() {\n const [openFrom, setOpenFrom] = React.useState(false)\n const [openTo, setOpenTo] = React.useState(false)\n const [dateFrom, setDateFrom] = React.useState<Date | undefined>(\n new Date(\"2025-06-01\")\n )\n const [dateTo, setDateTo] = React.useState<Date | undefined>(\n new Date(\"2025-06-03\")\n )\n\n return (\n <div className=\"flex w-full max-w-64 min-w-0 flex-col gap-6\">\n <div className=\"flex gap-4\">\n <div className=\"flex flex-1 flex-col gap-3\">\n <Label htmlFor=\"date-from\" className=\"px-1\">\n Check-in\n </Label>\n <Popover open={openFrom} onOpenChange={setOpenFrom}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"date-from\"\n className=\"w-full justify-between font-normal\"\n >\n {dateFrom\n ? dateFrom.toLocaleDateString(\"en-US\", {\n day: \"2-digit\",\n month: \"short\",\n year: \"numeric\",\n })\n : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-auto overflow-hidden p-0\"\n align=\"start\"\n >\n <Calendar\n mode=\"single\"\n selected={dateFrom}\n captionLayout=\"dropdown\"\n onSelect={(date) => {\n setDateFrom(date)\n setOpenFrom(false)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"time-from\" className=\"invisible px-1\">\n From\n </Label>\n <Input\n type=\"time\"\n id=\"time-from\"\n step=\"1\"\n defaultValue=\"10:30:00\"\n className=\"bg-background appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </div>\n <div className=\"flex gap-4\">\n <div className=\"flex flex-1 flex-col gap-3\">\n <Label htmlFor=\"date-to\" className=\"px-1\">\n Check-out\n </Label>\n <Popover open={openTo} onOpenChange={setOpenTo}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"date-to\"\n className=\"w-full justify-between font-normal\"\n >\n {dateTo\n ? dateTo.toLocaleDateString(\"en-US\", {\n day: \"2-digit\",\n month: \"short\",\n year: \"numeric\",\n })\n : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-auto overflow-hidden p-0\"\n align=\"start\"\n >\n <Calendar\n mode=\"single\"\n selected={dateTo}\n captionLayout=\"dropdown\"\n onSelect={(date) => {\n setDateTo(date)\n setOpenTo(false)\n }}\n disabled={dateFrom && { before: dateFrom }}\n />\n </PopoverContent>\n </Popover>\n </div>\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"time-to\" className=\"invisible px-1\">\n To\n </Label>\n <Input\n type=\"time\"\n id=\"time-to\"\n step=\"1\"\n defaultValue=\"12:30:00\"\n className=\"bg-background appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none\"\n />\n </div>\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
31
apps/v4/public/r/styles/default/calendar-27.json
Normal file
31
apps/v4/public/r/styles/default/calendar-27.json
Normal file
File diff suppressed because one or more lines are too long
31
apps/v4/public/r/styles/default/calendar-28.json
Normal file
31
apps/v4/public/r/styles/default/calendar-28.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-28",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Input with date picker",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"input",
|
||||
"label",
|
||||
"popover",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-28.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nfunction formatDate(date: Date | undefined) {\n if (!date) {\n return \"\"\n }\n\n return date.toLocaleDateString(\"en-US\", {\n day: \"2-digit\",\n month: \"long\",\n year: \"numeric\",\n })\n}\n\nfunction isValidDate(date: Date | undefined) {\n if (!date) {\n return false\n }\n return !isNaN(date.getTime())\n}\n\nexport default function Calendar28() {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(\"2025-06-01\")\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n const [value, setValue] = React.useState(formatDate(date))\n\n return (\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"date\" className=\"px-1\">\n Subscription Date\n </Label>\n <div className=\"relative flex gap-2\">\n <Input\n id=\"date\"\n value={value}\n placeholder=\"June 01, 2025\"\n className=\"bg-background pr-10\"\n onChange={(e) => {\n const date = new Date(e.target.value)\n setValue(e.target.value)\n if (isValidDate(date)) {\n setDate(date)\n setMonth(date)\n }\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault()\n setOpen(true)\n }\n }}\n />\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id=\"date-picker\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-2 top-1/2 h-6 w-6 -translate-y-1/2\"\n >\n <CalendarIcon className=\"size-3\" />\n <span className=\"sr-only\">Select date</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-auto overflow-hidden p-0\"\n align=\"end\"\n alignOffset={-8}\n sideOffset={10}\n >\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n month={month}\n onMonthChange={setMonth}\n onSelect={(date) => {\n setDate(date)\n setValue(formatDate(date))\n setOpen(false)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
34
apps/v4/public/r/styles/default/calendar-29.json
Normal file
34
apps/v4/public/r/styles/default/calendar-29.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-29",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Natural language date picker",
|
||||
"dependencies": [
|
||||
"chrono-node"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"input",
|
||||
"label",
|
||||
"popover",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-29.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { parseDate } from \"chrono-node\"\nimport { CalendarIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nfunction formatDate(date: Date | undefined) {\n if (!date) {\n return \"\"\n }\n\n return date.toLocaleDateString(\"en-US\", {\n day: \"2-digit\",\n month: \"long\",\n year: \"numeric\",\n })\n}\n\nexport default function Calendar29() {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState(\"In 2 days\")\n const [date, setDate] = React.useState<Date | undefined>(\n parseDate(value) || undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n return (\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"date\" className=\"px-1\">\n Schedule Date\n </Label>\n <div className=\"relative flex gap-2\">\n <Input\n id=\"date\"\n value={value}\n placeholder=\"Tomorrow or next week\"\n className=\"bg-background pr-10\"\n onChange={(e) => {\n setValue(e.target.value)\n const date = parseDate(e.target.value)\n if (date) {\n setDate(date)\n setMonth(date)\n }\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault()\n setOpen(true)\n }\n }}\n />\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n id=\"date-picker\"\n variant=\"ghost\"\n className=\"absolute top-1/2 right-2 size-6 -translate-y-1/2\"\n >\n <CalendarIcon className=\"size-3.5\" />\n <span className=\"sr-only\">Select date</span>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto overflow-hidden p-0\" align=\"end\">\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n month={month}\n onMonthChange={setMonth}\n onSelect={(date) => {\n setDate(date)\n setValue(formatDate(date))\n setOpen(false)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n <div className=\"text-muted-foreground px-1 text-sm\">\n Your post will be published on{\" \"}\n <span className=\"font-medium\">{formatDate(date)}</span>.\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
31
apps/v4/public/r/styles/default/calendar-30.json
Normal file
31
apps/v4/public/r/styles/default/calendar-30.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-30",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With little-date",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"input",
|
||||
"label",
|
||||
"popover",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-30.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { formatDateRange } from \"little-date\"\nimport { ChevronDownIcon } from \"lucide-react\"\nimport { type DateRange } from \"react-day-picker\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport default function Calendar30() {\n const [range, setRange] = React.useState<DateRange | undefined>({\n from: new Date(2025, 5, 4),\n to: new Date(2025, 5, 10),\n })\n\n return (\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"dates\" className=\"px-1\">\n Select your stay\n </Label>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"dates\"\n className=\"w-56 justify-between font-normal\"\n >\n {range?.from && range?.to\n ? formatDateRange(range.from, range.to, {\n includeTime: false,\n })\n : \"Select date\"}\n <ChevronDownIcon />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto overflow-hidden p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={range}\n captionLayout=\"dropdown\"\n onSelect={(range) => {\n setRange(range)\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
29
apps/v4/public/r/styles/default/calendar-31.json
Normal file
29
apps/v4/public/r/styles/default/calendar-31.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-31",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "With event slots",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"card",
|
||||
"button"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-31.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { formatDateRange } from \"little-date\"\nimport { PlusIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport { Card, CardContent, CardFooter } from \"@/registry/default/ui/card\"\n\nconst events = [\n {\n title: \"Team Sync Meeting\",\n from: \"2025-06-12T09:00:00\",\n to: \"2025-06-12T10:00:00\",\n },\n {\n title: \"Design Review\",\n from: \"2025-06-12T11:30:00\",\n to: \"2025-06-12T12:30:00\",\n },\n {\n title: \"Client Presentation\",\n from: \"2025-06-12T14:00:00\",\n to: \"2025-06-12T15:00:00\",\n },\n]\n\nexport default function Calendar31() {\n const [date, setDate] = React.useState<Date | undefined>(\n new Date(2025, 5, 12)\n )\n\n return (\n <Card className=\"w-fit py-4\">\n <CardContent className=\"px-4\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n className=\"bg-transparent p-0\"\n required\n />\n </CardContent>\n <CardFooter className=\"flex flex-col items-start gap-3 border-t px-4 pb-0 pt-4\">\n <div className=\"flex w-full items-center justify-between px-1\">\n <div className=\"text-sm font-medium\">\n {date?.toLocaleDateString(\"en-US\", {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n })}\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-6 w-6\"\n title=\"Add Event\"\n >\n <PlusIcon />\n <span className=\"sr-only\">Add Event</span>\n </Button>\n </div>\n <div className=\"flex w-full flex-col gap-2\">\n {events.map((event) => (\n <div\n key={event.title}\n className=\"bg-muted after:bg-primary/70 relative rounded-md p-2 pl-6 text-sm after:absolute after:inset-y-2 after:left-2 after:w-1 after:rounded-full\"\n >\n <div className=\"font-medium\">{event.title}</div>\n <div className=\"text-muted-foreground text-xs\">\n {formatDateRange(new Date(event.from), new Date(event.to))}\n </div>\n </div>\n ))}\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "700px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
29
apps/v4/public/r/styles/default/calendar-32.json
Normal file
29
apps/v4/public/r/styles/default/calendar-32.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-32",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"description": "Date picker in a drawer",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"button",
|
||||
"drawer"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "blocks/calendar-32.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarPlusIcon } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport {\n Drawer,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/default/ui/drawer\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport default function Calendar32() {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(undefined)\n\n return (\n <div className=\"flex flex-col gap-3\">\n <Label htmlFor=\"date\" className=\"px-1\">\n Date of birth\n </Label>\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger asChild>\n <Button\n variant=\"outline\"\n id=\"date\"\n className=\"w-48 justify-between font-normal\"\n >\n {date ? date.toLocaleDateString() : \"Select date\"}\n <CalendarPlusIcon />\n </Button>\n </DrawerTrigger>\n <DrawerContent className=\"w-auto overflow-hidden p-0\">\n <DrawerHeader className=\"sr-only\">\n <DrawerTitle>Select date</DrawerTitle>\n <DrawerDescription>Set your date of birth</DrawerDescription>\n </DrawerHeader>\n <Calendar\n mode=\"single\"\n selected={date}\n captionLayout=\"dropdown\"\n onSelect={(date) => {\n setDate(date)\n setOpen(false)\n }}\n className=\"mx-auto [--cell-size:clamp(0px,calc(100vw/7.5),52px)]\"\n />\n </DrawerContent>\n </Drawer>\n <div className=\"text-muted-foreground px-1 text-sm\">\n This example works best on mobile.\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:component",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"iframeHeight": "600px",
|
||||
"container": "w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24",
|
||||
"mobile": "component"
|
||||
},
|
||||
"categories": [
|
||||
"calendar",
|
||||
"date"
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/calendar-demo.json
Normal file
17
apps/v4/public/r/styles/default/calendar-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"calendar"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/calendar-demo.tsx",
|
||||
"content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport default function CalendarDemo() {\n const [date, setDate] = React.useState<Date | undefined>(new Date())\n\n return (\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={setDate}\n className=\"rounded-md border\"\n />\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
19
apps/v4/public/r/styles/default/calendar-form.json
Normal file
19
apps/v4/public/r/styles/default/calendar-form.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "calendar-form",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"calendar",
|
||||
"form",
|
||||
"popover"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/calendar-form.tsx",
|
||||
"content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toast } from \"@/registry/default/hooks/use-toast\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/registry/default/ui/form\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nconst FormSchema = z.object({\n dob: z.date({\n required_error: \"A date of birth is required.\",\n }),\n})\n\nexport default function CalendarForm() {\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n })\n\n function onSubmit(data: z.infer<typeof FormSchema>) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n <pre className=\"mt-2 w-[340px] rounded-md bg-slate-950 p-4\">\n <code className=\"text-white\">{JSON.stringify(data, null, 2)}</code>\n </pre>\n ),\n })\n }\n\n return (\n <Form {...form}>\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-8\">\n <FormField\n control={form.control}\n name=\"dob\"\n render={({ field }) => (\n <FormItem className=\"flex flex-col\">\n <FormLabel>Date of birth</FormLabel>\n <Popover>\n <PopoverTrigger asChild>\n <FormControl>\n <Button\n variant={\"outline\"}\n className={cn(\n \"w-[240px] pl-3 text-left font-normal\",\n !field.value && \"text-muted-foreground\"\n )}\n >\n {field.value ? (\n format(field.value, \"PPP\")\n ) : (\n <span>Pick a date</span>\n )}\n <CalendarIcon className=\"ml-auto h-4 w-4 opacity-50\" />\n </Button>\n </FormControl>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={field.value}\n onSelect={field.onChange}\n disabled={(date) =>\n date > new Date() || date < new Date(\"1900-01-01\")\n }\n initialFocus\n />\n </PopoverContent>\n </Popover>\n <FormDescription>\n Your date of birth is used to calculate your age.\n </FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n <Button type=\"submit\">Submit</Button>\n </form>\n </Form>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
21
apps/v4/public/r/styles/default/calendar.json
Normal file
21
apps/v4/public/r/styles/default/calendar.json
Normal file
File diff suppressed because one or more lines are too long
19
apps/v4/public/r/styles/default/card-demo.json
Normal file
19
apps/v4/public/r/styles/default/card-demo.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "card-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"card",
|
||||
"button",
|
||||
"switch"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/card-demo.tsx",
|
||||
"content": "import { BellRing, Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Switch } from \"@/registry/default/ui/switch\"\n\nconst notifications = [\n {\n title: \"Your call has been confirmed.\",\n description: \"1 hour ago\",\n },\n {\n title: \"You have a new message!\",\n description: \"1 hour ago\",\n },\n {\n title: \"Your subscription is expiring soon!\",\n description: \"2 hours ago\",\n },\n]\n\ntype CardProps = React.ComponentProps<typeof Card>\n\nexport default function CardDemo({ className, ...props }: CardProps) {\n return (\n <Card className={cn(\"w-[380px]\", className)} {...props}>\n <CardHeader>\n <CardTitle>Notifications</CardTitle>\n <CardDescription>You have 3 unread messages.</CardDescription>\n </CardHeader>\n <CardContent className=\"grid gap-4\">\n <div className=\" flex items-center space-x-4 rounded-md border p-4\">\n <BellRing />\n <div className=\"flex-1 space-y-1\">\n <p className=\"text-sm font-medium leading-none\">\n Push Notifications\n </p>\n <p className=\"text-sm text-muted-foreground\">\n Send notifications to device.\n </p>\n </div>\n <Switch />\n </div>\n <div>\n {notifications.map((notification, index) => (\n <div\n key={index}\n className=\"mb-4 grid grid-cols-[25px_1fr] items-start pb-4 last:mb-0 last:pb-0\"\n >\n <span className=\"flex h-2 w-2 translate-y-1 rounded-full bg-sky-500\" />\n <div className=\"space-y-1\">\n <p className=\"text-sm font-medium leading-none\">\n {notification.title}\n </p>\n <p className=\"text-sm text-muted-foreground\">\n {notification.description}\n </p>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n <CardFooter>\n <Button className=\"w-full\">\n <Check /> Mark all as read\n </Button>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
21
apps/v4/public/r/styles/default/card-with-form.json
Normal file
21
apps/v4/public/r/styles/default/card-with-form.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "card-with-form",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"button",
|
||||
"card",
|
||||
"input",
|
||||
"label",
|
||||
"select"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/card-with-form.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\n\nexport default function CardWithForm() {\n return (\n <Card className=\"w-[350px]\">\n <CardHeader>\n <CardTitle>Create project</CardTitle>\n <CardDescription>Deploy your new project in one-click.</CardDescription>\n </CardHeader>\n <CardContent>\n <form>\n <div className=\"grid w-full items-center gap-4\">\n <div className=\"flex flex-col space-y-1.5\">\n <Label htmlFor=\"name\">Name</Label>\n <Input id=\"name\" placeholder=\"Name of your project\" />\n </div>\n <div className=\"flex flex-col space-y-1.5\">\n <Label htmlFor=\"framework\">Framework</Label>\n <Select>\n <SelectTrigger id=\"framework\">\n <SelectValue placeholder=\"Select\" />\n </SelectTrigger>\n <SelectContent position=\"popper\">\n <SelectItem value=\"next\">Next.js</SelectItem>\n <SelectItem value=\"sveltekit\">SvelteKit</SelectItem>\n <SelectItem value=\"astro\">Astro</SelectItem>\n <SelectItem value=\"nuxt\">Nuxt.js</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </form>\n </CardContent>\n <CardFooter className=\"flex justify-between\">\n <Button variant=\"outline\">Cancel</Button>\n <Button>Deploy</Button>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
14
apps/v4/public/r/styles/default/card.json
Normal file
14
apps/v4/public/r/styles/default/card.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "card",
|
||||
"type": "registry:ui",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"files": [
|
||||
{
|
||||
"path": "ui/card.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n",
|
||||
"type": "registry:ui",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/carousel-api.json
Normal file
17
apps/v4/public/r/styles/default/carousel-api.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "carousel-api",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"carousel"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/carousel-api.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n type CarouselApi,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselDApiDemo() {\n const [api, setApi] = React.useState<CarouselApi>()\n const [current, setCurrent] = React.useState(0)\n const [count, setCount] = React.useState(0)\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n setCount(api.scrollSnapList().length)\n setCurrent(api.selectedScrollSnap() + 1)\n\n api.on(\"select\", () => {\n setCurrent(api.selectedScrollSnap() + 1)\n })\n }, [api])\n\n return (\n <div className=\"mx-auto max-w-xs\">\n <Carousel setApi={setApi} className=\"w-full max-w-xs\">\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index}>\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-4xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n <div className=\"py-2 text-center text-sm text-muted-foreground\">\n Slide {current} of {count}\n </div>\n </div>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/carousel-demo.json
Normal file
17
apps/v4/public/r/styles/default/carousel-demo.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "carousel-demo",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"carousel"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/carousel-demo.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselDemo() {\n return (\n <Carousel className=\"w-full max-w-xs\">\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index}>\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-4xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/carousel-orientation.json
Normal file
17
apps/v4/public/r/styles/default/carousel-orientation.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "carousel-orientation",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"carousel"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/carousel-orientation.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselOrientation() {\n return (\n <Carousel\n opts={{\n align: \"start\",\n }}\n orientation=\"vertical\"\n className=\"w-full max-w-xs\"\n >\n <CarouselContent className=\"-mt-1 h-[200px]\">\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"pt-1 md:basis-1/2\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex items-center justify-center p-6\">\n <span className=\"text-3xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/carousel-plugin.json
Normal file
17
apps/v4/public/r/styles/default/carousel-plugin.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "carousel-plugin",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"carousel"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/carousel-plugin.tsx",
|
||||
"content": "import * as React from \"react\"\nimport Autoplay from \"embla-carousel-autoplay\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselPlugin() {\n const plugin = React.useRef(\n Autoplay({ delay: 2000, stopOnInteraction: true })\n )\n\n return (\n <Carousel\n plugins={[plugin.current]}\n className=\"w-full max-w-xs\"\n onMouseEnter={plugin.current.stop}\n onMouseLeave={plugin.current.reset}\n >\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index}>\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-4xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/carousel-size.json
Normal file
17
apps/v4/public/r/styles/default/carousel-size.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "carousel-size",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"carousel"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/carousel-size.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselSize() {\n return (\n <Carousel\n opts={{\n align: \"start\",\n }}\n className=\"w-full max-w-sm\"\n >\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"md:basis-1/2 lg:basis-1/3\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-3xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
17
apps/v4/public/r/styles/default/carousel-spacing.json
Normal file
17
apps/v4/public/r/styles/default/carousel-spacing.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "carousel-spacing",
|
||||
"type": "registry:example",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"carousel"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "examples/carousel-spacing.tsx",
|
||||
"content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/default/ui/carousel\"\n\nexport default function CarouselSpacing() {\n return (\n <Carousel className=\"w-full max-w-sm\">\n <CarouselContent className=\"-ml-1\">\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"pl-1 md:basis-1/2 lg:basis-1/3\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-2xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n}\n",
|
||||
"type": "registry:example",
|
||||
"target": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
20
apps/v4/public/r/styles/default/carousel.json
Normal file
20
apps/v4/public/r/styles/default/carousel.json
Normal file
File diff suppressed because one or more lines are too long
22
apps/v4/public/r/styles/default/chart-area-axes.json
Normal file
22
apps/v4/public/r/styles/default/chart-area-axes.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "chart-area-axes",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"card",
|
||||
"chart"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "charts/chart-area-axes.tsx",
|
||||
"content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis, YAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n <Card>\n <CardHeader>\n <CardTitle>Area Chart - Axes</CardTitle>\n <CardDescription>\n Showing total visitors for the last 6 months\n </CardDescription>\n </CardHeader>\n <CardContent>\n <ChartContainer config={chartConfig}>\n <AreaChart\n accessibilityLayer\n data={chartData}\n margin={{\n left: -20,\n right: 12,\n }}\n >\n <CartesianGrid vertical={false} />\n <XAxis\n dataKey=\"month\"\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n tickFormatter={(value) => value.slice(0, 3)}\n />\n <YAxis\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n tickCount={3}\n />\n <ChartTooltip cursor={false} content={<ChartTooltipContent />} />\n <Area\n dataKey=\"mobile\"\n type=\"natural\"\n fill=\"var(--color-mobile)\"\n fillOpacity={0.4}\n stroke=\"var(--color-mobile)\"\n stackId=\"a\"\n />\n <Area\n dataKey=\"desktop\"\n type=\"natural\"\n fill=\"var(--color-desktop)\"\n fillOpacity={0.4}\n stroke=\"var(--color-desktop)\"\n stackId=\"a\"\n />\n </AreaChart>\n </ChartContainer>\n </CardContent>\n <CardFooter>\n <div className=\"flex w-full items-start gap-2 text-sm\">\n <div className=\"grid gap-2\">\n <div className=\"flex items-center gap-2 font-medium leading-none\">\n Trending up by 5.2% this month <TrendingUp className=\"h-4 w-4\" />\n </div>\n <div className=\"flex items-center gap-2 leading-none text-muted-foreground\">\n January - June 2024\n </div>\n </div>\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:block",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"charts",
|
||||
"charts-area"
|
||||
]
|
||||
}
|
||||
22
apps/v4/public/r/styles/default/chart-area-default.json
Normal file
22
apps/v4/public/r/styles/default/chart-area-default.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "chart-area-default",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"card",
|
||||
"chart"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "charts/chart-area-default.tsx",
|
||||
"content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n <Card>\n <CardHeader>\n <CardTitle>Area Chart</CardTitle>\n <CardDescription>\n Showing total visitors for the last 6 months\n </CardDescription>\n </CardHeader>\n <CardContent>\n <ChartContainer config={chartConfig}>\n <AreaChart\n accessibilityLayer\n data={chartData}\n margin={{\n left: 12,\n right: 12,\n }}\n >\n <CartesianGrid vertical={false} />\n <XAxis\n dataKey=\"month\"\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n tickFormatter={(value) => value.slice(0, 3)}\n />\n <ChartTooltip\n cursor={false}\n content={<ChartTooltipContent indicator=\"line\" />}\n />\n <Area\n dataKey=\"desktop\"\n type=\"natural\"\n fill=\"var(--color-desktop)\"\n fillOpacity={0.4}\n stroke=\"var(--color-desktop)\"\n />\n </AreaChart>\n </ChartContainer>\n </CardContent>\n <CardFooter>\n <div className=\"flex w-full items-start gap-2 text-sm\">\n <div className=\"grid gap-2\">\n <div className=\"flex items-center gap-2 font-medium leading-none\">\n Trending up by 5.2% this month <TrendingUp className=\"h-4 w-4\" />\n </div>\n <div className=\"flex items-center gap-2 leading-none text-muted-foreground\">\n January - June 2024\n </div>\n </div>\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:block",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"charts",
|
||||
"charts-area"
|
||||
]
|
||||
}
|
||||
22
apps/v4/public/r/styles/default/chart-area-gradient.json
Normal file
22
apps/v4/public/r/styles/default/chart-area-gradient.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "chart-area-gradient",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"card",
|
||||
"chart"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "charts/chart-area-gradient.tsx",
|
||||
"content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n <Card>\n <CardHeader>\n <CardTitle>Area Chart - Gradient</CardTitle>\n <CardDescription>\n Showing total visitors for the last 6 months\n </CardDescription>\n </CardHeader>\n <CardContent>\n <ChartContainer config={chartConfig}>\n <AreaChart\n accessibilityLayer\n data={chartData}\n margin={{\n left: 12,\n right: 12,\n }}\n >\n <CartesianGrid vertical={false} />\n <XAxis\n dataKey=\"month\"\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n tickFormatter={(value) => value.slice(0, 3)}\n />\n <ChartTooltip cursor={false} content={<ChartTooltipContent />} />\n <defs>\n <linearGradient id=\"fillDesktop\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop\n offset=\"5%\"\n stopColor=\"var(--color-desktop)\"\n stopOpacity={0.8}\n />\n <stop\n offset=\"95%\"\n stopColor=\"var(--color-desktop)\"\n stopOpacity={0.1}\n />\n </linearGradient>\n <linearGradient id=\"fillMobile\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop\n offset=\"5%\"\n stopColor=\"var(--color-mobile)\"\n stopOpacity={0.8}\n />\n <stop\n offset=\"95%\"\n stopColor=\"var(--color-mobile)\"\n stopOpacity={0.1}\n />\n </linearGradient>\n </defs>\n <Area\n dataKey=\"mobile\"\n type=\"natural\"\n fill=\"url(#fillMobile)\"\n fillOpacity={0.4}\n stroke=\"var(--color-mobile)\"\n stackId=\"a\"\n />\n <Area\n dataKey=\"desktop\"\n type=\"natural\"\n fill=\"url(#fillDesktop)\"\n fillOpacity={0.4}\n stroke=\"var(--color-desktop)\"\n stackId=\"a\"\n />\n </AreaChart>\n </ChartContainer>\n </CardContent>\n <CardFooter>\n <div className=\"flex w-full items-start gap-2 text-sm\">\n <div className=\"grid gap-2\">\n <div className=\"flex items-center gap-2 font-medium leading-none\">\n Trending up by 5.2% this month <TrendingUp className=\"h-4 w-4\" />\n </div>\n <div className=\"flex items-center gap-2 leading-none text-muted-foreground\">\n January - June 2024\n </div>\n </div>\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:block",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"charts",
|
||||
"charts-area"
|
||||
]
|
||||
}
|
||||
22
apps/v4/public/r/styles/default/chart-area-icons.json
Normal file
22
apps/v4/public/r/styles/default/chart-area-icons.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "chart-area-icons",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"card",
|
||||
"chart"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "charts/chart-area-icons.tsx",
|
||||
"content": "\"use client\"\n\nimport { TrendingDown, TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n icon: TrendingDown,\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n icon: TrendingUp,\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n <Card>\n <CardHeader>\n <CardTitle>Area Chart - Icons</CardTitle>\n <CardDescription>\n Showing total visitors for the last 6 months\n </CardDescription>\n </CardHeader>\n <CardContent>\n <ChartContainer config={chartConfig}>\n <AreaChart\n accessibilityLayer\n data={chartData}\n margin={{\n left: 12,\n right: 12,\n }}\n >\n <CartesianGrid vertical={false} />\n <XAxis\n dataKey=\"month\"\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n tickFormatter={(value) => value.slice(0, 3)}\n />\n <ChartTooltip\n cursor={false}\n content={<ChartTooltipContent indicator=\"line\" />}\n />\n <Area\n dataKey=\"mobile\"\n type=\"natural\"\n fill=\"var(--color-mobile)\"\n fillOpacity={0.4}\n stroke=\"var(--color-mobile)\"\n stackId=\"a\"\n />\n <Area\n dataKey=\"desktop\"\n type=\"natural\"\n fill=\"var(--color-desktop)\"\n fillOpacity={0.4}\n stroke=\"var(--color-desktop)\"\n stackId=\"a\"\n />\n <ChartLegend content={<ChartLegendContent />} />\n </AreaChart>\n </ChartContainer>\n </CardContent>\n <CardFooter>\n <div className=\"flex w-full items-start gap-2 text-sm\">\n <div className=\"grid gap-2\">\n <div className=\"flex items-center gap-2 font-medium leading-none\">\n Trending up by 5.2% this month <TrendingUp className=\"h-4 w-4\" />\n </div>\n <div className=\"flex items-center gap-2 leading-none text-muted-foreground\">\n January - June 2024\n </div>\n </div>\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:block",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"charts",
|
||||
"charts-area"
|
||||
]
|
||||
}
|
||||
23
apps/v4/public/r/styles/default/chart-area-interactive.json
Normal file
23
apps/v4/public/r/styles/default/chart-area-interactive.json
Normal file
File diff suppressed because one or more lines are too long
22
apps/v4/public/r/styles/default/chart-area-legend.json
Normal file
22
apps/v4/public/r/styles/default/chart-area-legend.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "chart-area-legend",
|
||||
"type": "registry:block",
|
||||
"author": "shadcn (https://ui.shadcn.com)",
|
||||
"registryDependencies": [
|
||||
"card",
|
||||
"chart"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "charts/chart-area-legend.tsx",
|
||||
"content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n <Card>\n <CardHeader>\n <CardTitle>Area Chart - Legend</CardTitle>\n <CardDescription>\n Showing total visitors for the last 6 months\n </CardDescription>\n </CardHeader>\n <CardContent>\n <ChartContainer config={chartConfig}>\n <AreaChart\n accessibilityLayer\n data={chartData}\n margin={{\n left: 12,\n right: 12,\n }}\n >\n <CartesianGrid vertical={false} />\n <XAxis\n dataKey=\"month\"\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n tickFormatter={(value) => value.slice(0, 3)}\n />\n <ChartTooltip\n cursor={false}\n content={<ChartTooltipContent indicator=\"line\" />}\n />\n <Area\n dataKey=\"mobile\"\n type=\"natural\"\n fill=\"var(--color-mobile)\"\n fillOpacity={0.4}\n stroke=\"var(--color-mobile)\"\n stackId=\"a\"\n />\n <Area\n dataKey=\"desktop\"\n type=\"natural\"\n fill=\"var(--color-desktop)\"\n fillOpacity={0.4}\n stroke=\"var(--color-desktop)\"\n stackId=\"a\"\n />\n <ChartLegend content={<ChartLegendContent />} />\n </AreaChart>\n </ChartContainer>\n </CardContent>\n <CardFooter>\n <div className=\"flex w-full items-start gap-2 text-sm\">\n <div className=\"grid gap-2\">\n <div className=\"flex items-center gap-2 font-medium leading-none\">\n Trending up by 5.2% this month <TrendingUp className=\"h-4 w-4\" />\n </div>\n <div className=\"flex items-center gap-2 leading-none text-muted-foreground\">\n January - June 2024\n </div>\n </div>\n </div>\n </CardFooter>\n </Card>\n )\n}\n",
|
||||
"type": "registry:block",
|
||||
"target": ""
|
||||
}
|
||||
],
|
||||
"categories": [
|
||||
"charts",
|
||||
"charts-area"
|
||||
]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user